【问题标题】:How to check if a select value equals a certain option using jQuery Validate?如何使用 jQuery Validate 检查选择值是否等于某个选项?
【发布时间】:2011-04-13 21:23:14
【问题描述】:

我正在为表单使用 jQuery Validate。我需要添加一些功能,因此如果从选择/下拉菜单中选择了特定选项,则需要额外的字段。

这是他们在 jQuery 网站上提供的示例,如果在复选框 (http://docs.jquery.com/Plugins/Validation/validate#options) 中选中了一个选项,则需要一个特定字段:

$(".selector").validate({
   rules: {
     contact: {
       required: true,
       email: {
         depends: function(element) {
           return $("#contactform_email:checked")
         }
       }
     }
   }
})

这是我正在做的,但它返回一个错误。基本上,如果从下拉列表中选择足球作为最喜欢的运动,那么位置是必填字段。

$form.validate( {
rules: {
    favoriteSport: {
        required: true
    },
    position: {
            depends: function(element) {
                    return $('#favoriteSport[value="football"]');
            }
    }
}

});

【问题讨论】:

  • favoriteSport 没有 value 属性。但有子节点可以。 #favoriteSport > option[value=football] 你可以试试:$('#favoriteSport > option[value=football]:selected')

标签: jquery forms jquery-plugins jquery-validate


【解决方案1】:

尝试:

$('#favoriteSport > option[value=football]:selected') 

【讨论】:

  • 谢谢,这似乎可以解决问题。现在,每当我输入出现的输入时,当我在输入框外单击时,它会返回错误“Uncaught TypeError: Cannot call method 'call' of undefined”。我猜这是由于 jQuery Validate 试图验证“#position”字段?有什么想法吗?
  • 根据我在这里看到的代码,我不明白您为什么会收到该错误。
【解决方案2】:

如果您正在使用 ASP.Net 或其他破坏控件 ID 的语言,并且您正在寻找一种选择特定文本的方法,您可以这样做:

$('[id$=NormalControlID] :selected').text("SomeValue");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 2011-01-24
    • 2010-09-14
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多