【问题标题】:jquery - get selected dropdown value on document readyjquery - 在文档准备好时获取选定的下拉值
【发布时间】:2014-05-28 14:38:34
【问题描述】:

我想遍历我的页面并找到每个带有特定 ID 的下拉菜单。我在访问下拉列表的选项集合时没有问题,但在页面首次加载时访问默认选择值没有问题。

我有一个循环中的下拉列表:

@Html.DropDownListFor(m => m.InterviewSchedules[location.InterviewDates.IndexOf(date)].ChairId, new SelectList(ChairList, "InterviewerId", "FullDetails"), new {id = "ddlInterviewer" })

这是我在外部脚本中的 js:

 $("#InterviewManagementFrm #ddlInterviewer > option").each(function () {
        var lastChar = this.text.substr(this.text.length - 1);
        if (lastChar == 'A') {
            $(this).addClass("AcceptedPreference");
            //            this.text = this.text.slice(0, this.text.length - 1);
        }
        else if (lastChar == 'P') {
            $(this).addClass("PreferredPreference");
            //            this.text = this.text.slice(0, this.text.length - 1);
        }
    });

我想为页面上的每个下拉项添加一个类。 addClass 用于为下拉项设置不同颜色的样式。

在我的屏幕截图中,只有未选中的项目有颜色。那是因为 javascript 添加了类。我想为页面加载时默认选择的值添加一个类。

【问题讨论】:

标签: javascript jquery drop-down-menu


【解决方案1】:

您可以使用:selected http://api.jquery.com/selected-selector/

$("#InterviewManagementFrm #ddlInterviewer > option").each(function () {
    var lastChar = this.text.substr(this.text.length - 1);
    if (lastChar == 'A') {
        if( $(this).is(':selected') ) {
            // add class
        } else {
            $(this).addClass("AcceptedPreference");
        }
    }
    else if (lastChar == 'P') {
        if( $(this).is(':selected') ) {
            // add class
        } else {
            $(this).addClass("PreferredPreference");
        }
    }
});

你也可以直接定位选中的

$("#InterviewManagementFrm #ddlInterviewer > option:selected")

如果#ddlInterviewer 是选择的ID,那么您不需要> 并且ID 应该是唯一的

【讨论】:

  • 谢谢 我可以选择选定的项目,但现在我无法将我的班级分配给它。如果我能让它工作,那么所有代码​​都可以工作。我想根据最后一个字符添加一个类。如果是 A 则为黄色背景。如果 P 则为绿色背景。
  • 在您的原始代码中,您已经对最后一个字符进行了测试。我的解决方案为您提供了一种测试当前选项是否被选中的方法。那么你的问题在哪里?
  • 是的。 $(this).css("AcceptedPreference");不适用于 if ($(this).is(':selected')) {
  • @Sorry-Im-a-N00b 你的意思是他之前检测字符的代码不正确?我的假设是它有效,他只需要知道如何检测当前选择的
  • @nickgowdy 我更新了答案,它对你有用吗? $(this).css("AcceptedPreference")这是一个错字吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多