Javascript jQuery-如果div中的任何Select具有值
这件事有很多麻烦。假设我有以下html:Javascript jQuery-如果div中的任何Select具有值,javascript,jquery,if-statement,Javascript,Jquery,If Statement,这件事有很多麻烦。假设我有以下html: <div id='step_1'> <select name='select_1' id='choose'> <option value='select one'>Select One</option> <option value='yes'>Yes</option> <option value='no'>No</option>
<div id='step_1'>
<select name='select_1' id='choose'>
<option value='select one'>Select One</option>
<option value='yes'>Yes</option>
<option value='no'>No</option>
</select>
<select name='select_2' id='choose_again'>
<option value='select one'>Select One</option>
<option value='yes'>Yes</option>
<option value='no'>No</option>
</select>
<button id='submit'>button</button>
</div>
我做错了什么?提前谢谢,我喜欢这个网站!:) 您的测试失败,因为
length
不是一种方法。这是一种财产。卸下()
。如果您查看调试器,您应该会看到一条关于此的警告
此外,您的选择器应该检查所选选项,而不是选择列表本身
例如:
快速提示:如果您希望警报只显示一次,而不是每次“选择一个”,只需将警报()移动到else{语句中。再次感谢您的回答!您可以使用$。each():
请注意,一旦发现缺少的字段,返回false将阻止循环继续。如果第一个字段说“是”或“否”,而第二个字段仍然说“选择一个”,则返回正确。如果其中任何一个字段具有该值,则应返回“请选择一个”。非常感谢您的帮助,尽管我非常感谢!非常感谢!我会选择一个我自己解决了这个问题还有一件事,你知道我怎样才能让警报只显示一次,即使两个警报都没有被选中?你可以把它移到其他条件,就这样。太接近了!!这个警报可以工作了,但是如果第一个警报被选中,即使第二个警报没有被选中,它仍然会提交,尽管警报会首先弹出..在另一个世界中ds它仍然运行我正在使用的else语句,但出于某种原因,它首先运行“if”中的语句。有什么想法吗?非常感谢您的帮助!对,这取决于您添加一个标志并相应地处理操作。您可以添加一个变量来测试迭代后的状态,并将警报移到loo之外P
$('#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() {
$foo = $('#step_1 select option:selected[value="select one"]');
alert($foo.length);
});
$('#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();
}
});
$('#step_1').find('SELECT').each( function() {
if( $(this).val() === 'select one' ) {
alert('Please select yes or no!');
return false;
}
});