我正在尝试从JavaScript表单中检索变量,以确定表单之前是否已经过验证。
因此,当用户点击“提交”按钮时,将检查此项。我已经设置好了,所以当点击这个按钮时它可以运行一个函数。
验证码:
$(document).ready(function(){
$('#email').keyup(function() {
var email = $('#email').val();
var minChars = 5;
var characters_error = 'Not enough characters';
$('#email_status').text("Checking..");
if (email != '') {
if($('#email').val().length <= minChars)
{
//if it's bellow the minimum show characters_error text
$('#email_status').text(characters_error);
}
else if ($('#email').val().length > minChars)
{
$.post('validation/refer_validation.php', {email: email}, function(data){
$('#email_status').text(data);
});
} else
{
$('#email_status').text('');
}
}
});
});
按钮代码:
$(document).ready(function(){
$("#submit").click(function () {
if (validated != true)
{
// Tell the user that there is an error in the form.
}
});
});
注意我是如何添加名为'validated'的变量,应该在某处设置但这是我感到困惑的地方。我如何更新变量并将其返回到按钮?因为验证代码包含在HTML表单中,但是如果我创建了一个变量,它可能总是将自身更新为默认值,因为该函数是在key up上调用的。
希望这一切都有道理。
答案 0 :(得分:1)
不是使用提交按钮调用验证函数,而是在表单的onsubmit中调用它。如果您返回true,它将继续并提交表单,如果您返回false,它将取消表单提交。
<form onsubmit="return validate();">
在提交实际发生之前就会调用Onsubmit。
答案 1 :(得分:0)
设置一个全局变量,即在所有函数之外,设置
var validated = false;
然后相应地设置验证,并且应该在提交中阅读。
答案 2 :(得分:0)
使用变量
然后单击提交按钮
时工作正常答案 3 :(得分:0)
不是抛出外部变量,而是更好地记录表单已被验证为表单本身的数据属性。
此外,点击按钮进行验证会忽略表单可能通过回车键提交的事实,因此请在表单的提交事件上进行验证。
$(function() {
$('#some_form').on('submit', function() {
//validated before? forget it
if ($(this).data('validated')) { alert('already validated'); return false; }
//else, if first time, log that we're doing it
$(this).data('validated', 'true');
//do validation...
});
});