javascript - 我必须单击按钮两次才能提交

标签 javascript php ajax

我面临远程验证问题。当我点击提交按钮而不关注文本框时,它会调用远程ajax进行验证,当我第二次按下提交按钮时,它将提交表单。 同一次点击将不起作用。如果我同时关注两个文本框并单击“提交”,那么它就可以正常工作。

$("#submit").click(function(e){

        if($('#add_sub_seva_form').valid())
        {

            if($("#hid_sub_head_id").val()==$("#hid_head_id").val()){
                $("#add_sub_seva_form .alert-danger").html("Head Name and Sub Head Name should not be same.");
                $("#add_sub_seva_form .alert-danger").show();
                $("#add_sub_seva_form .alert-danger").delay(3000).fadeOut(400);
                e.preventDefault();
                return false;
            }
            sub_length=$(".e_sub_head").length; 
            if(sub_length>0){
                for(var i=2;i<sub_length+2;i++){
                    if($("#hid_sub_head_id_"+i).val()=="")
                    {
                        $("#add_sub_seva_form .alert-danger").html("Please Enter Sub Head Name "+i);
                        $("#add_sub_seva_form .alert-danger").show();
                        $("#add_sub_seva_form .alert-danger").delay(3000).fadeOut(400);
//                        alert("Please Enter Sub Head Name "+i);
                        e.preventDefault();
                        return false;
                    }
                }
            }
            var msg=confirm('Are you Sure?');
            if(msg===true){
                $('#add_sub_seva_form').submit();
            }
            else{
                e.preventDefault();
            }
        }
        else{
            e.preventDefault();
        }

});

 $("#add_sub_seva_form").validate({

       rules:{
           seva_eng:{
               required:true,
               remote: {
                    url: "check-seva.php",
                    type: "post", data: {
                        hid_seva_eng: function() {
                            return $('#hid_seva_eng').val();
                        }
                    }
                }    
           },
           seva_guj:{
               required:true,
               remote: {
                    url: "check-seva.php",
                    type: "post", data: {
                        hid_seva_guj: function() {
                            return $('#hid_seva_guj').val();
                        }
                    }
                }
           },
           event_name:{
               required:true
           },
           head_id:{
               hid_head:true
           },
           sub_head_id:{
               hid_sub_head:true
           }
       },
       messages:{
           seva_eng:{
               required:'Please Enter Seva Name(Eng.)',
               remote:'Seva Name is already exist'
           },
           seva_guj:{
               required:'Please Enter Seva Name(Guj.)',
               remote:'Seva Name is already exist'
           },
           event_name:'Please Select Event Name'
       }
    });

最佳答案

我对窗口加载做了一些临时解决方案,我专注于文本框。

window.onload = function() {
    $('input[type="text"]').focus();  
};

这是一个棘手的解决方案。它不可靠。

关于javascript - 我必须单击按钮两次才能提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29843807/

相关文章:

javascript - Bootstrap 选项卡 - Typeerror .tab 不是函数

php - PHP 的 parse_ini_file() 扫描模式是什么?

php - 如何用数据库中的数据填充复选框?

javascript - jQuery .then() 和 success block 不能一起工作?

javascript - 跳过从数据库到 html 的 AJAX 值

javascript - Bootstrap Popover 内部的 ngRepeat

javascript - 低连接 window.location.href

jquery - 使用 jQuery 在页面加载时包含额外内容的 SEO 影响

javascript - 使模块在 jasmine 通过 Resharper 测试的 Controller 中可用

php - 将订单购物车 session 保存到数据库