2011-04-13 64 views
0

我正在使用jQuery验证表单。我需要添加一些功能,以便在从选择/下拉菜单中选择特定选项时需要额外的字段。如何检查选择值是否等于使用jQuery Validate的特定选项?

下面是他们的jQuery的网站需要certrain领域上提供,如果一个选项是一个复选框(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"]'); 
      } 
    } 
} 

});

+0

favoriteSport没有值的属性。但有子节点。 #favoriteSport> option [value = football] 你可以试试:$('#favoriteSport> option [value = football]:selected') – ChrisThompson 2011-04-13 21:27:46

回答

2

尝试:

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

谢谢,这似乎是个诀窍。现在,无论何时输入显示的输入,当我在输入框外单击时,它都会返回错误“Uncaught TypeError:Can not call method'call'of undefined”。我想这是由于jQuery验证尝试验证“#position”字段?有任何想法吗? – Cofey 2011-04-13 21:37:51

+0

根据我在这里看到的代码,我不明白为什么你会得到这个错误。 – ChrisThompson 2011-04-14 13:11:13

1

如果您使用ASP.Net或废墟您的控件的ID一些其他的语言,你正在寻找一种方式,具有特定的文本选择,你可以做这个:

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