枚举下拉列表的事件更改
Posted
技术标签:
【中文标题】枚举下拉列表的事件更改【英文标题】:event change for enumdropdownlist 【发布时间】:2015-12-25 16:20:33 【问题描述】:在视图中
@html.EnumDropDownListFor(model => model.Field)
型号
public Fields Field get; set;
public enum Fields
First = 1,
Second
这些是我的标记
<select id="Field" name="Field">
<option selected="selected" value="1"> First</option>
<option value="2">Second</option>
</select>
这些脚本不会调用
$('select#Field').change(function ()
var orderIdd = $('#Field').val();
alert(orderIdd);
);
【问题讨论】:
那么问题出在哪里? @enigmaThese scripts dont call
:)
控制台出现什么错误?
脚本是包裹在document.ready()
还是页面底部。你有jquery-version.js
吗?
@Backs 没有错误
【参考方案1】:
尝试以下方法:
在你看来;像这样更改声明:
@Html.EnumDropDownListFor(model => model.Field,"Select..." ,new @class="fields-select")
并更新您的 javascript 代码如下:
$(document).ready(function()
$('select.fields-select').change(function ()
var orderIdd = $(this).val();
alert(orderIdd);
);
);
在您的情况下,为 select
生成的 ID 可能与 id="Field"
不同。
【讨论】:
你能不能试着把.change()
代码放在$(document).ready
里面。还可以通过 firebug 或浏览器的检查元素检查生成的 HTML,并查看 id
和 class
分配给您的枚举选择框的内容。
是的。我试过了。我检查了。身份证正确。在控制台中,我可以调用 $('select#Field')。但我不明白为什么没有出现事件
最后一次尝试:请这样做:new @class="fields-select", @onchange = "onSelectChange(this);
并在新创建的function onSelectChange(obj)
中添加一些警报。检查是否有效。如果是,则将上面的代码移动到这个新函数中。
是的。有用。但为什么这个案子行得通?虽然其他人不是
这真的很奇怪,我也在想为什么其他案例都失败了以上是关于枚举下拉列表的事件更改的主要内容,如果未能解决你的问题,请参考以下文章