重新键入vars jquery javascript后替换span文本(错误)
jquery实时验证检查的最佳方法是什么 Onsubmit将每个标签的范围更改为,例如: 输入您的电子邮件|提交|电子邮件不正确 但是,当您再次更改值时,您必须再次提交以删除电子邮件不正确的消息 所以我在寻找一个实时的错误处理或者什么的。考虑到我的代码,最好的方法是什么重新键入vars jquery javascript后替换span文本(错误),javascript,jquery,forms,Javascript,Jquery,Forms,jquery实时验证检查的最佳方法是什么 Onsubmit将每个标签的范围更改为,例如: 输入您的电子邮件|提交|电子邮件不正确 但是,当您再次更改值时,您必须再次提交以删除电子邮件不正确的消息 所以我在寻找一个实时的错误处理或者什么的。考虑到我的代码,最好的方法是什么 <script type="text/javascript"> $(document).ready(function() { $('form #status').hide();
<script type="text/javascript">
$(document).ready(function()
{
$('form #status').hide();
$('#submit').click(function(e) {
e.preventDefault();
var valid = '';
var required = 'is required';
var name = $('form #name').val();
var subject = $('form #subject').val();
var email = $('form #email').val();
var message = $('form #message').val();
var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
//error checking
if (name == '' || name.length <= 2)
{
valid = '<p>your name' + required + '</p>';
$('form #nameInfo').text('Name can not contain 2 characters or less!');
}
if(!filter.test(email)){
valid += '<p>Your email'+ required +'</p>';
$('form #emailInfo').text('Email addres is not valid');
}
if (message == '' || message.length <= 5)
{
valid += '<p>A message' + required +'</p>';
$('form #messageInfo').text('Message must be over 20 chars');
}
if (valid != '')
{
$('form #status').removeClass().addClass('error')
.html('<strong>Please correct errors belown </strong>' + valid).fadeIn('fast')
}
else
{
$('form #status').removeClass().addClass('processing').html('Processing...').fadeIn('fast');
var formData = $('form').serialize();
submitForm(formData);
}
});
});
</script>
我不是100%肯定我理解这个问题。用户更正输入时是否要重置emailInfo文本?如果是,您可以使用onchange、onkeypres或onfocus事件: 更好的是,您可以在相应的字段更改上进行验证,而不是在表单提交上进行验证 以下示例将验证每个按键上的电子邮件字段:
$("#email").keypress(function(){
var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
var email = $('#email').val();
if(!filter.test(email)){
$('#emailInfo').text('Email addres is not valid');
} else {
$('#emailInfo').text('');
}
});
您可以用类似的方式验证其他字段。或者你可以使用插件。我指的是实时验证检查。编辑问题对不起,当您填写电子邮件时,有时您可以从下拉列表中选择,具体取决于wich浏览器。或者有时您可以按ctrl+v组合键将其插入。虽然没有发生那么多,但我仍然想弄清楚如何在这些情况下改变它。如果我粘贴某个东西或从下拉列表中选择它,它将不起作用。追求完美:PYou可以使用输入事件。但它在IE8及更低版本中不起作用。请查看此处了解更多详细信息:
$("#email").keypress(function(){
var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
var email = $('#email').val();
if(!filter.test(email)){
$('#emailInfo').text('Email addres is not valid');
} else {
$('#emailInfo').text('');
}
});