简体   繁体   English

如何使用jquery或ajax单击提交表单

[英]How to submit a form with single click using jquery or ajax

In my code i have a form 在我的代码中,我有一个表单

 <form id="form_enquiry" name="enquiry-form">
        <ul>
            <li>
                <label>Name</label>
                <input name="name" type="text" id="name" class="required"/>
            </li>
            <li>
                <label>Email</label>
                <input name="email" type="text" id="email" class="required"/>
            </li>
            <li>
                <label>Telephone</label>
                <input name="telephone" type="text" id="telephone" class="required"/>
            </li>
            <li>
                <label>Message</label>
                <textarea rows="4" name="message" id="message" class="required"></textarea>
            </li>
             <li>
                <label>How did you hear about us?</label>
                <div class="select-arrow">
                <select name="select_option" id="select_option" class="required">
                    <option value="" selected="selected">— — —</option>
                    <option value="I am a repeat customer">I am a repeat customer</option>
                    <option value="You where recommended to me">You where recommended to me</option>
                    <option value="Google Search">Google Search</option>
                    <option value="Travelzoo">Travelzoo</option>
                    <option value="Newspaper article">Newspaper article</option>
                    <option value="Facebook">Facebook</option>
                </select>
                </div>
            </li>
             <li>
                <button type="submit" id="enquiry_submit">Send</button>
            </li>
          </ul>
        </form>

this form i am submitting using jquery code 这个表单我使用jquery代码提交

$("#form_enquiry").submit(function (e) {
        e.preventDefault(); // this will prevent from submitting the form.
          //alert('check');
            $("#form_enquiry").validate({
             submitHandler: function(form) {

                var name1 = $('#name').val();
                var email1 = $('#email').val();
                var telephone1 = $('#telephone').val();
                var message1 = $('#message').val();
                var select_option1 = $('#select_option').val();
                var site_url = <?= $_SERVER['REQUEST_URI'] ?>;
                    if(name1 && email1 && telephone1 && message1 && select_option1) 
                    {
                        $.ajax({
                            type: 'post',
                            url: '<?= base_url()?>'+'frontend/form_enquiry',
                            data: 'name='+name1+'&email='+email1+'&telephone='+telephone1+'&message='+message1+'&select_option='+select_option1+'&site_url='+site_url
                            //success: function(data) { $('#login_err').html('Success ...'); }
                        });
                    }
                }

            });
        });

its working fine but in need to click the send button twice.. i want submit the form with a single click whats wrong in code help me... 它工作正常,但需要点击发送按钮两次..我想提交表单只需单击一下,代码中的错误帮我...

You don't have to bind submit event manually if you are using jQuery validate, because it does it for you. 如果使用jQuery validate,则不必手动绑定提交事件,因为它可以为您完成。 Just use this alone: 单独使用它:

$("#form_enquiry").validate({
    submitHandler: function (form) {

        var name1 = $('#name').val();
        var email1 = $('#email').val();
        var telephone1 = $('#telephone').val();
        var message1 = $('#message').val();
        var select_option1 = $('#select_option').val();
        var site_url = <?= $_SERVER['REQUEST_URI'] ?> ;
        if (name1 && email1 && telephone1 && message1 && select_option1) {
            $.ajax({
                type: 'post',
                url: '<?= base_url()?>' + 'frontend/form_enquiry',
                data: 'name=' + name1 + '&email=' + email1 + '&telephone=' + telephone1 + '&message=' + message1 + '&select_option=' + select_option1 + '&site_url=' + site_url
                //success: function(data) { $('#login_err').html('Success ...'); }
            });
        }
    }

});

Demo: http://jsfiddle.net/54hcvcbk/ 演示: http //jsfiddle.net/54hcvcbk/

Using ajax with serialize form data.So need not take values one by one from input fields. 使用带有序列化表单数据的ajax。因此无需从输入字段逐个获取值。

$("#form_enquiry").submit(function(e) {
      e.preventDefault();
      $.ajax({
      'type': 'POST',
      'url': '<?= base_url()?>'+'frontend/form_enquiry',
       'data': $("#form_enquiry").serialize(),
       success: function(data) {                           
       }});

});

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

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