单击按钮时,表单将通过ajax发送,但我首先要检查是否已禁用所有文本输入。我尝试了以下操作但是当一个元素保持启用时,console.log将返回done
,而这不是应该发生的事情。
正确填写每个input[type=text]
后,他们会获得属性disabled="disabled"
。
的jQuery
$('.vacancy-submit').click(function(){
var isValid = false;
$("input[type=text]").each(function(){
if ( $(this).is('[disabled="disabled"]') ) {
isValid = true;
} else {
isValid = false;
}
});
if (!isValid){
alert("Please fill in all the required fields (highlighted in red)");
console.log('derp');
} else {
console.log('done');
}
return isValid;
var company = $('input[name=company-title]').val();
var location = $('input[name=location-title]').val();
var term = $('input[name=term]:checked').val();
var closedate = $('input[name=vacancy-date]').val();
$.ajax({
type:"post",
url:"/assets/inc/add-vacancy.php",
data:"company="+company+"&location="+location+"&term="+term+"&closedate="+closedate,
success:function(data){
console.log(data);
}
});
});
答案 0 :(得分:3)
要检查是否已禁用所有输入,请使用disabled-selector
var isValid = $("input[type=text]:not(:disabled)").length == 0;
if (!isValid) {
alert("Please fill in all the required fields (highlighted in red)");
console.log('derp');
return isValid;
} else {
console.log('done');
}
答案 1 :(得分:0)
.each是一个回调,所以它会立即返回,你应该改变你的每一个,以便它不会返回: