我正在使用onblur来验证表单输入,但这会强制用户输入内容以逃避字段。如果他们打算坚持下去,这很好,但如果他们需要重新开始或取消,它会阻止他们重置表单。从理论上讲,我想要一个简单的if语句来确定点击的输入是否是重置/取消按钮,但是当我使用onblur时,我无法判断onclick是否会注册 - 这似乎有效关注最后一个领域。
如果有必要,我会使用jQuery,但我认为应该有一个简单的JS解决方案,我无法从我的垃圾压缩器中取出内存。
以下是代码:
function checkRequiredEntry(fieldValue,fieldId,error) {
var field = fieldId;
if (fieldValue.length == 0) {
alert(error);
field.value = "";
field.focus();
error = "";
return false;
}
if (fieldValue.length > 0) {
if (field.id == "zip" || field.id == "phone") {
checkNumberFormat(fieldValue,fieldId);
}
if (field.id == "email") {
checkEmailFormat(fieldValue,fieldId);
}
}
}
...以及html的示例:
<textarea rows="5" cols="61" name="message" id="message" onblur="return checkRequiredEntry(this.value,document.getElementById('message'),'A brief comment or question is required to validate your form submission. Thank you.');" style="padding:0;"></textarea>
答案 0 :(得分:0)
我建议验证检查将在模糊后100 mili进行,并检查标志是否运行如下:
<input ... onblur="validate()">
<button onclick="resetInput()"></button>
var flag = true;
function validate() {
setTimeout(function() {
if (flag) { // do validation or anything}
}, 100);
}
function resetInput() {
flag = false;
//do what you want to do
setTimeout(function() {
flag=true;
}, 200);
}