jQuery – 如果任何div中的选择有一个值

这个问题一直很麻烦。 假设我有以下html:

Select One Yes No Select One Yes No

我有很多这样的,所以我想要做的就是如果任何’select’具有’Select One’的值则返回false,然后提醒他们。 到目前为止我的jQuery看起来如此:

 $('#submit').click(function() { if ($('#step_1 select[value="select one"]').length() == 0) { //succeed } else { alert('Please select yes or no!'); return false; } }); 

我究竟做错了什么? 在此先感谢,我喜欢这个网站! 🙂

 $('#submit').click(function(e) { var flag = true; $('select').each(function(){ if($(this).val() == "select one"){ alert("please select a value in " + $(this).attr("name")); flag = false; } }); if(flag){ alert('perfect'); }else{ e.preventDefault(); } }); 

示例: http : //jsfiddle.net/raj_er04/3kHVY/1/

快速注意:如果您希望警报只显示一次而不是每次“选择一次”,只需将alert()移动到else {语句中。 再次感谢这个答案!

您可以使用$ .each()执行此操作:

 $('#step_1').find('SELECT').each( function() { if( $(this).val() === 'select one' ) { alert('Please select yes or no!'); return false; } }); 

请注意,返回false将阻止循环在找到丢失的字段后继续。

您的测试失败,因为length不是方法。 这是一个属性。 删除() 。 如果您查看调试器,您应该看到有关此问题的警告。

此外,您的选择器应检查所选选项,而不是选择列表本身。

http://jsfiddle.net/7PPs4/

 $('#submit').click(function() { $foo = $('#step_1 select option:selected[value="select one"]'); alert($foo.length); });