【问题标题】:how to set the selected value of dropdownlist in jquery如何在jquery中设置下拉列表的选定值
【发布时间】:2016-12-03 07:44:22
【问题描述】:

我正在使用带有 Razor 的 htmlhelper 下拉列表并通过 jquery 设置它的值。它不起作用。

@Html.DropDownList("Gendar", new List<SelectListItem> {
    new SelectListItem { Text="Are You Male or Female", Value="Are You Male or Female" },
    new SelectListItem { Text="Male", Value="male" },
    new SelectListItem { Text="Female", Value="female" }
}, new { @class = "form-control" }


<script>
    ($(this).attr("data-Gendar") == "Male" ? $("#Gendar[value='male']").prop("selected", true) : $("#Gendar[value ='female']").prop("selected", true));
</script>

【问题讨论】:

  • 你能澄清什么是行不通的。
  • 你想在这里做什么?你的脚本根本没有意义。 $(this) 指的是 Window 对象!它没有名为data-Gendar 的属性,您生成的下拉列表也没有。您的第一个选项没有意义,但要初始设置所选选项,请在将模型传递给视图之前,在 GET 方法中将属性 Gendar 的值设置为“男性”或“女性”
  • 如果您想使用 javascript 设置它,请说明您想要触发更改的事件(在该事件处理程序中,使用 $('#Gendar').val('male');$('#Gendar').val('female');

标签: jquery html html-helper


【解决方案1】:
    set on change event, like: 
     @Html.DropDownList("Gendar", new List<SelectListItem>
                                {
                                new SelectListItem { Text="Are You Male or Female", Value="Are You Male or Female" },
                                new SelectListItem { Text="Male", Value="male" },
                                new SelectListItem { Text="Female", Value="female" }
                                }, new { onchange = "onChange(this)" })

//js
<script>
    function onChange(e)   {
        (e.value == "male" ? $("#Gendar[value='male']").prop("selected", true) : $("#Gendar[value ='female']").prop("selected", true));
    }
</script>

【讨论】:

  • 你加载了jQuery库吗?
  • 我复制了 prop("selected", "selected") 用我的 prop("selected", true) 替换它,但结果仍然相同......它不起作用
  • 能否在开发者工具中检查一下是否有一些js错误? F12 通常适用于任何浏览器?
  • 是的,我在 $.fn.jquery 的帮助下在检查元素控制台窗口中检查了它,我的 jquery 版本是“2.1.1”
【解决方案2】:

我认为您的代码需要在文档准备好并且页面完全加载时执行

试试这个

<script>
(function() {
    ($(this).attr("data-Gendar") === "Male" ? $("#Gendar[value='male']").prop("selected", true) : $("#Gendar[value ='female']").prop("selected", true));
}());        

【讨论】:

    猜你喜欢
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多