我有一个包含1个以上输入字段的表单。应该允许的格式是hh:mm / h:mm。所以我已经有了一个函数,如果输入格式为真,则检查我的输入。
所以我想要的是,如果我点击我的提交按钮,如果格式正确,我想再次检查所有方框。如果为true则提交();否则然后警告()或其他东西。但这不是问题。
我不知道我怎么能意识到这一点。提前谢谢:))
function validateAbs(inputField) {
var isValid = /^([0-1]?[0-9]|2[0-3]):([0-5][0-9])(:[0-5][0-9])?$/.test(inputField.value);
if (isValid) {
inputField.style.backgroundColor = '#bfa';
} else {
inputField.style.backgroundColor = '#fba';
}
return isValid;
}
$(function(){
$('#ist').on('input', function() {
//This is one of ne hh:mm Textboxes
validateAbs(this);
});
});
$(function(){
$('#abssubmit').on('input', function() {
//This is my Submit-Button
});
});
答案 0 :(得分:0)
这简直太容易了:
$('#abssubmit').on('input', function() {
$("selector-for-the-inputs-you-want-to-check").each(function() {
validateAbs(this);
});
});
如果您想知道其中任何一个是否无效,可以使用filter
:
$('#abssubmit').on('input', function() {
var invalidFields = $("selector-for-the-inputs-you-want-to-check").filter(function() {
return !validateAbs(this);
});
if (invalidFields.length) {
// At least one field was invalid
}
});
答案 1 :(得分:0)
您需要更改为提交处理程序而不是输入'处理程序:
$('#abssubmit').on('submit', function(ev) {
var isValid;
ev.preventDefault(); // to stop the form from submitting
$('#ist').each(function() {
if (!validateAbs(this)) isValid = false;
});
if (isValid) {
this.submit(); // all the validations succeeded
}
});