特定的javascript代码只与警告语句一起工作
Specific javascript code only working with alert statement
所以我有一个下拉菜单,应该是由Json对象值填充。代码是这样的:
$("#sport").val(model.SportId);
嗯,当我加载页面时,它不起作用。下拉列表默认为"None Selected"选项。所以我做了一个贫民窟调试,在模型上放了一个警告。SportId看看发生了什么
当我刷新页面…它的工作原理。我唯一做的就是
alert(model.SportId);
它会弹出一个显示"1"的弹出窗口,然后下拉菜单值会显示选项"Major League Baseball"(这是该选项值的文本)。就是这样。这是我唯一改变的东西。将警告放在第一行代码之前。如果我把警告放在代码后面,它就不起作用了。我不知道这是为什么。
派生Json对象的视图模型将SportId作为一个可空的int。这和这件事有关系吗?
编辑:好的,在我的razor视图中,这是我的javascript:
<script type="text/javascript">
$(document).ready(function () {
var model=@Html.Raw(Json.Encode(Model.Title));
var read=@Html.Raw(Json.Encode(Model));
var sportsurl='@Url.Action("GetSports", "Titles")';
var sportsteamsurl='@Url.Action("GetSportsTeams", "Titles")';
TitleBasicEdit(model, read, sportsurl, sportsteamsurl);
});
javascript函数titlebasicedit是:
function TitleBasicEdit(model, url, read, backurl, seasonsurl, autocompleteurl, urlforward, sportsurl, sportsteamsurl) {
if ((model.TitleTypeId == 3) || (model.TitleTypeId == 8)) {
GetSports(sportsurl);
SportsDependency(sportsteamsurl);
alert(model.SportId);
$("#sport").val(model.SportId);
$("#sport").change();
$("#hometeam").val(model.HomeSportTeamId);
$("#awayteam").val(model.AwaySportTeamId);
}
这可能是与填充选项时执行的异步任务相关的问题(如ajax请求)。这可能就是alert()工作的原因:它停止javascript的执行,以便任务有足够的时间完成(无论如何,一个链接可能真的很感激)。
编辑:GetSports()函数可以是那个任务;
我想知道这是不是因为模型。SportId是一个类型=== 'number' ..?你试过这个吗?我不知道为什么它会工作,因为jQuery应该足够聪明来处理这个:
$("#sport").val(model.SportId+'');
还有,试试这个:
alert($("#sport").length);
$("#sport").val(model.SportId);
alert($("#sport").length);
可能是你的javascript在HTML加载之前正在执行。alert()可以给它足够的时间来加载。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何在ReactJS JSX中执行嵌套的if-else语句
- chrome扩展更改主机/域警告
- 自动修复”;语句前缺少分号“;
- 如何在 API 调用后和 if 语句中启用提交按钮
- 是“;x==a||b”;以及“;x==a||x==b”;JavaScript中的等效语句
- 带有多个elseif的Javascript if语句
- 这个条件语句的逻辑有问题
- Sharepoint JScript if语句未执行
- 为什么继续;语句冻结浏览器
- Javascript:If-then语句在函数中不起作用
- 禁用“;使用“use strict”的函数形式;但保持“;缺少'使用strict'语句“;警告
- 简单的计算器返回警告语句,但忽略实际的函数
- jQuery代码在if语句中不运行,即使警告在if语句中发生
- 特定的javascript代码只与警告语句一起工作
- If语句未触发警告框
- 警告:将此与前面的'var'语句",而所述变量位于for循环之后
- Javascript警告框在执行前一个语句之前显示
- JS不工作,如果我删除警告语句
- 闭包编译器:避免"缺少返回语句”;保证退货时发出警告