检查输入框数组是否为空
Checking an array of input boxes are not empty
最好在 jQuery 中执行此操作,用于检查输入框是否为空的简单验证。但是,这些是输入框的动态数组。该代码应该有助于理解:
<input type="text" id="qtn" name="question" />
<input type="text" name="answer[]" />
<button type="button" id="btn"> Save </button>
我理解问题输入的通常想法是这样的:
$('#btn').click(function () {
var question = $.trim($('#qtn').val());
// Check if empty of not
if (question === '') {
alert('Text-field is empty.');
return false;
} else {
$('#form').submit();
}
});
这对于 answer[]
输入类型如何工作,因为会有动态数量的答案,并且想要确保无论用户选择了多少,所有这些框都被填满了。
谢谢!
您可以使用 filter()
方法查找 form
中的任何空文本框。另请注意,您应该在提交 form
本身时执行此检查,而不是单击按钮,因为有人可以在焦点位于文本框上时通过按 return 键来提交表单。试试这个:
$('form').submit(function(e) {
var $emptyFields = $(this).find(':text').filter(function() {
return this.value.trim() == '';
});
if (!$emptyFields.length) {
e.preventDefault(); // stop the form submission
alert('Please fill out all fields');
} else {
$form.submit();
}
});
这样试试
$('#btn').click(function () {
var checkValidate = false;
$('input[type=text]').each(function() {
if(!$.trim($(this).val())){
alert('Some fields are empty');
checkValidate = true;
return false;
}
});
if(!checkValidate) {
$('#form').submit();
}
});
$('#btn').click(function () {
var getTargetText = $(":text").filter(function() { return this.value==""; });
if($(getTargetText[0]).val()=="") {
alert("Please Enter this Field");
$(getTargetText[0]).focus();
return false;
}
});
是的,正如 Rory McCrossan 的回答,过滤器是一个选项。我只是修改为目标实际文本框为空。
最好在 jQuery 中执行此操作,用于检查输入框是否为空的简单验证。但是,这些是输入框的动态数组。该代码应该有助于理解:
<input type="text" id="qtn" name="question" />
<input type="text" name="answer[]" />
<button type="button" id="btn"> Save </button>
我理解问题输入的通常想法是这样的:
$('#btn').click(function () {
var question = $.trim($('#qtn').val());
// Check if empty of not
if (question === '') {
alert('Text-field is empty.');
return false;
} else {
$('#form').submit();
}
});
这对于 answer[]
输入类型如何工作,因为会有动态数量的答案,并且想要确保无论用户选择了多少,所有这些框都被填满了。
谢谢!
您可以使用 filter()
方法查找 form
中的任何空文本框。另请注意,您应该在提交 form
本身时执行此检查,而不是单击按钮,因为有人可以在焦点位于文本框上时通过按 return 键来提交表单。试试这个:
$('form').submit(function(e) {
var $emptyFields = $(this).find(':text').filter(function() {
return this.value.trim() == '';
});
if (!$emptyFields.length) {
e.preventDefault(); // stop the form submission
alert('Please fill out all fields');
} else {
$form.submit();
}
});
这样试试
$('#btn').click(function () {
var checkValidate = false;
$('input[type=text]').each(function() {
if(!$.trim($(this).val())){
alert('Some fields are empty');
checkValidate = true;
return false;
}
});
if(!checkValidate) {
$('#form').submit();
}
});
$('#btn').click(function () {
var getTargetText = $(":text").filter(function() { return this.value==""; });
if($(getTargetText[0]).val()=="") {
alert("Please Enter this Field");
$(getTargetText[0]).focus();
return false;
}
});
是的,正如 Rory McCrossan 的回答,过滤器是一个选项。我只是修改为目标实际文本框为空。