Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新键入vars jquery javascript后替换span文本(错误)_Javascript_Jquery_Forms - Fatal编程技术网

重新键入vars jquery javascript后替换span文本(错误)

重新键入vars jquery javascript后替换span文本(错误),javascript,jquery,forms,Javascript,Jquery,Forms,jquery实时验证检查的最佳方法是什么 Onsubmit将每个标签的范围更改为,例如: 输入您的电子邮件|提交|电子邮件不正确 但是,当您再次更改值时,您必须再次提交以删除电子邮件不正确的消息 所以我在寻找一个实时的错误处理或者什么的。考虑到我的代码,最好的方法是什么 <script type="text/javascript"> $(document).ready(function() { $('form #status').hide();

jquery实时验证检查的最佳方法是什么

Onsubmit将每个标签的范围更改为,例如:

输入您的电子邮件|提交|电子邮件不正确

但是,当您再次更改值时,您必须再次提交以删除电子邮件不正确的消息

所以我在寻找一个实时的错误处理或者什么的。考虑到我的代码,最好的方法是什么

<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('');
    }
});