简体   繁体   English

HTML5中的表单验证不起作用

[英]Form validation in HTML5 doesn't work

Hi Could you please have a look at my HTML and function? 嗨,您能看看我的HTML和功能吗? The required field doesn't work. 必填字段无效。 Any ideas why? 有什么想法吗?

  <form  action='contact_form.php' method='post' class="contactForm">
                    <div class="formSecWrap">
                        <input type="text" class="formField" title="Name" id="name"       name="name" value="" required/>
                        <input type="text" class="formField" title="Email" name="email" id="email" value="" required/>
                        <input type="text" class="formField" title="Phone" name="phone" id="phone" value="" required />
                        <input type="text" class="formField" title="Date &amp; Time" name="date" id="date" value="" required/>
                    </div>
                    <div class="formSecWrap formSecWrap2">
                        <textarea class="textarea formField" title="Message" name="message" id="message"></textarea>
                    </div>
                        <input class="button" id="submit-form" type="submit" name="submit" value="Send Message" />
                    <div id="success">

                    </div>
                </form>

And here is my function. 这是我的功能。 I am not sure why it doesn't pick it up as a required fields.I have not created this form myself but was trying to work it out somehow. 我不确定为什么它没有将其作为必填字段。我自己尚未创建此表单,但正在尝试以某种方式进行处理。 Thank you 谢谢

  (function($){
$(document).ready(function() {
    $('#submit-form').click(function(e){

        e.preventDefault();
        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
        var name     = $('#name').val(),
            email    = $('#email').val(),
            phone    = $('#phone').val(),
            date     = $('#date').val(),
            message  = $('#message').val(),
            data_html,
            success = $('#success');

        if(name == "")
            $('#name').val('Please enter your name.');

        if(phone == "")
            $('#phone').val('Please enter your phone number.');

        if(date == "")
            $('#date').val('Please enter a date and time.');

        if(email == ""){
            $('#email').val('Your email is required.');
        }else if(reg.test(email) == false){
            $('#email').val('Invalid Email Address.');
        }

        if(message == "")
            $('#message').val('Message is required.');

        if(message != "" && name != "" && reg.test(email) != false) {
            data_html = "name=" + name + "&email="+ email + "&message=" + message + "&phone="+ phone + "&date="+ date;

            //alert(data_html);
            $.ajax({
                type: 'POST',
                url: '../contact_form.php',
                data: data_html,
                success: function(msg){

                    if (msg == 'sent'){
                        success.html('<div class="alert alert-success">Message <strong>successfully</strong> sent!</div>')  ;
                        $('#name').val('');
                        $('#phone').val('');
                        $('#email').val('');
                        $('#date').val('');
                        $('#message').val('');
                    }else{
                        success.html('<div class="alert alert-error">Message <strong>not</strong> sent! Please Try Again!</div>')  ; 
                    }
                }
            });

        }
        return false;
      });
});
   });

try to pass arguments to you anonymous function 尝试将参数传递给您的匿名函数

(function($){
  //all that code
})(jQuery);

You can try executing the anonymous function something like: 您可以尝试执行匿名函数,例如:

(function($){


 //Your code

}.call(this));

Please create the fiddle if the problem does not get resolved 如果问题没有解决,请创建小提琴

anonymous function should be called for execution: 应该调用匿名函数来执行:

(function($){
  //your code
})(jQuery);

for calling anonymous function use () right after the function ends, and pass jQuery parameter. 用于在函数结束后立即调用匿名函数use(),并传递jQuery参数。

Remove the first and the last lines from your javascript. 从您的JavaScript中删除第一行和最后一行。

(function($){

and

});

It wraps the code into an anonymous function which isn't invoked so you don't bind the click event to the submit button. 它将代码包装到一个不会被调用的匿名函数中,因此您不会将click事件绑定到Submit按钮。

its working fine in both firefox and chrome.. Still if does not work you can check this out 它在Firefox和Chrome中都可以正常工作。如果仍然无法正常工作,您可以检查一下

HTML form required command not working? HTML表单必需的命令不起作用?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM