最好想在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[]
输入类型有何用处,因为会有一个动态数量的答案,并希望确保用户选择了多少,所有这些框都已填充。
谢谢!
答案 0 :(得分:4)
您可以使用filter()
方法查找form
中的任何空文本框。另请注意,您应该检查提交form
本身,而不是单击按钮,因为有人可以通过在焦点位于文本框上时按返回键来提交表单。试试这个:
$('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();
}
});
答案 1 :(得分:1)
试试这个
$('#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();
}
});
答案 2 :(得分:1)
$('#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 的答案,过滤器将是选项。我刚修改为目标哪个实际文本框为空。