Javascript 无法附加带有静态选项的下拉列表
我的Razor视图引擎中有以下脚本:-Javascript 无法附加带有静态选项的下拉列表,javascript,jquery,razor,Javascript,Jquery,Razor,我的Razor视图引擎中有以下脚本:- else if ($("#ChoiceTag").prop("checked")) { $.getJSON("@Url.Content("~/Switch/LoadCSTag")", function (CSData) { var select = $("#GeneralCSID");
else if ($("#ChoiceTag").prop("checked")) {
$.getJSON("@Url.Content("~/Switch/LoadCSTag")",
function (CSData) {
var select = $("#GeneralCSID");
select.empty();
select.append($("<option/>", {
value: null
}));
$.each(CSData, function (index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
select.val('@Model.Switch.ConsoleServerID');
});
});
}
我希望Jquery函数运行后,会在下拉列表中附加该选项,但当前将在下拉列表的开头显示一条空记录,而不是文本。
有人能告诉我可能有什么问题吗?
谢谢
这是您在selectlist中添加的虚拟选项
但您从未指定该项目上应显示的文本。您可以使用与已设置项的文本属性完全相同的方式进行设置,根据您的注释,下面的项已正确加载
select.append($("<option/>", {
value: "", //I prefer an empty string, not sure if null is valid
text: "Select an option..."
}));
更新
你的报价:
displayed at the beginning of the drop down list, instead of the "<options>" text
我不知道你说的文字是什么意思。你的意思是把字符串作为静态选项的文本吗?我用选择一个选项。。。例如,您可以选择所需的任何字符串。您能再次解释一下您要查找的内容吗?我想在下拉列表的开头显示以下文本list@johnG:如果要在开头而不是结尾,请使用prepend而不是append。其次,只有在执行getJSON调用时,才会进行追加或预结束。你确定你正在对后端进行调用吗?否则,您的选择列表将保持为空,除非它在页面加载中有一些默认内容,但目前我在任何地方都没有收到文本,而且我正在恢复一个空选项。谢谢您的回复,我的下拉列表类型为int,当我添加value&text时,我开始收到以下错误:General d必须是一个数字,以防我没有选择任何值。。不确定是什么导致了这个问题。但是如果我将值从null改为它,它会很好地工作,你能告诉我,为什么我会出现这种行为吗?一般d必须是一个数字。据我所知,这不是默认的javascript/jquery错误消息。这是开发人员选择抛出该消息的客户端验证,或者另一个框架,要求selectlist的选定值可以强制转换为int。General d必须是一个数字,以防我没有选择任何值==>来确认我的怀疑,即检查selectlist的选定值是否有效,并在不有效时抛出该错误。我没有关于应用程序其余部分的信息,因此很遗憾,我无法在这方面帮助您。是的,此错误是从实体框架生成的,但是很长?应接受空字符串,但不接受空字符串。。这是我无法理解的。但是,如果你需要进一步的帮助,请用另一个问题来提问。原来的问题已经解决,新问题将需要更多关于MVC后端的信息,以及如何处理控制器方法中发布的值。
displayed at the beginning of the drop down list, instead of the "<options>" text