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
不是方法。 这是一个属性。 删除()
。 如果您查看调试器,您应该看到有关此问题的警告。
此外,您的选择器应检查所选选项,而不是选择列表本身。
$('#submit').click(function() { $foo = $('#step_1 select option:selected[value="select one"]'); alert($foo.length); });