我试图在php进程之前验证一个简单的表单。 当我将每个输入都清空时,表单会停止,但如果我停留在同一页面并填写每个输入,表单将不会提交。
我猜回报是假的;留在第一次验证。我是初学者:)
所以这是一段摘录:
HTML
<input onblur="validName();" type="text" name="name" id="name">
<textarea id="message" name="message" onblur="validMess();" rows="5"></textarea>
<input type="submit" name="submit" onclick="validSubmit();" value="send">
JQUERY
function validSubmit() {
var message = $("#message").val();
var name = $("#name").val();
if( name == ''){
$("#valid-name").removeClass('hide'); // if empty = show error message
$("#form").submit(function(e){
return false;
});
}
else {
$("#valid-name").addClass('hide'); // all good = hide error message
$("#form").submit(function(e){
return true;
});
}
if(message == ''){
$("#valid-mess").removeClass('hide'); // if empty = show error message
$("#form").submit(function(e){
return false;
});
}
else {
$("#valid-mess").addClass('hide'); // all good = hide error message
$("#form").submit(function(e){
return true;
});
}
}
ID:valid-name和valid-mess是两个设置为display的错误消息:none;默认情况下。
我有点失落,答案可能在JS或Jquery我不介意。
感谢您的时间。
答案 0 :(得分:2)
请勿在{{1}}回调中致电submit
,只有在不正常时才会返回submit
:
false
另外,正如Barmar所指出的,这不是绑定验证的最佳方式。您最好使用
,而不是绑定到click事件function validSubmit() {
var message = $("#message").val();
var name = $("#name").val();
$("#valid-name,#valid-mess").addClass('hide');
var ok = true;
if (name == ''){
$("#valid-name").removeClass('hide');
ok = false;
}
if (message == ''){
$("#valid-mess").removeClass('hide');
ok = false;
}
return ok;
}