【问题标题】: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);
});

【问题讨论】:

  • 那么问题出在哪里?
  • @enigma These scripts dont call :)
  • 控制台出现什么错误?
  • 脚本是包裹在document.ready()还是页面底部。你有jquery-{version}.js 吗?
  • @Backs 没有错误

标签: javascript c# jquery asp.net-mvc asp.net-mvc-3


【解决方案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,并查看 idclass 分配给您的枚举选择框的内容。
  • 是的。我试过了。我检查了。身份证正确。在控制台中,我可以调用 $('select#Field')。但我不明白为什么没有出现事件
  • 最后一次尝试:请这样做:new { @class="fields-select", @onchange = "onSelectChange(this);} 并在新创建的function onSelectChange(obj) 中添加一些警报。检查是否有效。如果是,则将上面的代码移动到这个新函数中。
  • 是的。有用。但为什么这个案子行得通?虽然其他人不是
  • 这真的很奇怪,我也在想为什么其他案例都失败了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-21
  • 2012-05-17
相关资源
最近更新 更多