我有一个验证器函数循环检查并查看是否所有输入都已填写,但我还需要检查下拉列表是否也被选中。我想把它写成同一个函数。
function validateSave (){
// reset status
var good = true
$('.errormessage-left').removeClass('active-left')
$('input').removeClass("warning")
$('input').each(function(){
if ($(this).val() == "") {
console.log("found an empty");
good = false
$(this).addClass("warning")
$('.errormessage-left').addClass('active-left'),
$('.modal').addClass('modal-active');
}
})
console.log(good)
return good
}
最好的方法是什么?
答案 0 :(得分:1)
您可以在下拉列表(val()
元素)上使用<select>
,就像输入元素一样,只需将其包含在选择器中
$('input, select').each(function(){
答案 1 :(得分:0)
你可以这样做:
假设第一个元素是:“请选择......”
if ($(".myDDL").get(0).selectedIndex>0)...
或
if ($(".myDDL").prop('selectedIndex')>0)...
答案 2 :(得分:0)
你应该可以将它添加到循环中:
if ($(this).prop('type')=='select-one'){
if ($(this).prop('selectedIndex')==0){
console.log("found an empty");
good = false
$(this).addClass("warning")
$('.errormessage-left').addClass('active-left'),
$('.modal').addClass('modal-active');
}
}
答案 3 :(得分:0)
试试这个:
$('input').each(function(){
if($(this).prop('selected') == true){
// selected item
}
});
答案 4 :(得分:0)
假设您的HTML看起来像这样:
<input type="text" name="whatever">
<select>
<option value="">Choose One...</option>
<option value="choice1">Choice 1</option>
<option value="choice2">Choice 2</option>
<option value="choice3">Choice 3</option>
</select>
然后你的jQuery可以像这样想出来
$('input, select').each(function(){
if($(this).val() == ''){
alert('Cannot be blank!');
}
else{
//proceed
}
}