Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
如何使用JQuery验证添加停止多表单提交_Jquery_Forms_Jquery Validate - Fatal编程技术网

如何使用JQuery验证添加停止多表单提交

如何使用JQuery验证添加停止多表单提交,jquery,forms,jquery-validate,Jquery,Forms,Jquery Validate,我想停止禁用提交按钮,一旦验证完成,表单提交,所以我不会有多个插入到数据库。我并没有用完整的表单验证更新帖子,因为你们大多数人都说这是错误的,但我不这么认为 以下是提交文件: <input class="button2" style="border-right:none; font-size:13px;" name="List Item" id="submit" type="submit" value="List Item" /> 以下是jQuery验证: <scr

我想停止禁用提交按钮,一旦验证完成,表单提交,所以我不会有多个插入到数据库。我并没有用完整的表单验证更新帖子,因为你们大多数人都说这是错误的,但我不这么认为

以下是提交文件:

<input class="button2" style="border-right:none; font-size:13px;" name="List Item" id="submit" type="submit" value="List Item" />

以下是jQuery验证:

   <script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>   

<script>
$( "#UploadForm" ).validate({

  errorLabelContainer: "#messageBox",
  wrapper: "td",

  rules: {  

   <?php if ($type == 'Aution' || $type == 'Both') {  ?> 
    auction_price: {
    required: true,
    number: true,
    min: 1.00
    }, 
    auction_reserve_price: {
    number: true,
    range: [1.00, 500000.00]
    },
    <?php } ?>

    <?php if ($type == 'BuyItNow' || $type == 'Both') {  ?> 
    auction_bin_price: {
    required: true,
    number: true,
    range: [1.00, 500000.00]

    }, <?php } ?>


    Country: {
        required: true
    },

    select3: {
        required: true
    },
    select2: {
        required: true
    },
    auction_postage_type: {
        required: true

    },
        auction_postage_type_price: {
        number: true,
        range: [0.00, 500000.00]
    },

    auction_int_postage_type_price: {
        number: true,
        range: [1.00, 500000.00]
    },

     Europe1: {
        number: true,
        range: [1.00, 500000.00]
    },
     Russia1: {
        number: true,
        range: [1.00, 500000.00]
    },
     NorthAmerica1: {
        number: true,
        range: [1.00, 500000.00]
    },
     Australia1: {
        number: true,
        range: [1.00, 500000.00]
    },
     SouthAmerica1: {
        number: true,
        range: [1.00, 500000.00]
    },
     Africa1: {
        number: true,
        range: [1.00, 500000.00]
    },
     Asia1: {
        number: true,
        range: [1.00, 500000.00]
    },
     MiddleEast1: {
        number: true,
        range: [1.00, 500000.00]
    },


    <?php if ($type == 'BuyItNow') {  ?> 
    auction_item_quantity: {
        required: true,
        digits: true,
        range: [1, 99]
    },
    <?php } ?>

    auction_description: {
    required: true
    },
    auction_int_postage_type: {
    required: true
    },
    listing_type: {
    required: true
    }
  },
  messages: {
    auction_price: "Please Enter Auction Start Price - In Decimal Format, minimum value 1.00",
    auction_reserve_price: "Please Enter Auction Reserve Price - In Decimal Format 0.00",
    auction_bin_price: "Please Enter Buy It Now Price - In Decimal Format, minimum value 1.00",
    select3: "Please Select Main Category",
    select2: "Please Select Sub Category",
    auction_item_quantity: "Please Enter Quentity - min 1 - max 99",
    auction_description: "Please Enter Auction Description -  Min 10, Max 1000 characters",
    listing_type: "Please Select Listing Type",
    auction_postage_type: "Please Select Postage Type",
    auction_int_postage_type_price: "Please Enter International Postage Cost In Decimal Format, minimum value 1.00",
    auction_postage_type_price: "Please Enter Postage Cost In Decimal Format",
    auction_int_postage_type: "Please Select",
    Country: "Please Select Country",

  },
  submitHandler:function(form){
       $('#submit').attr('disable',true).css('pointer-events','none');
  }


});
</script>

$(“#上传表单”).validate({
errorLabelContainer:#messageBox“,
包装:“td”,
规则:{
拍卖价格:{
要求:正确,
数字:对,
最低:1.00
}, 
拍卖(底价):{
数字:对,
范围:[1.00,500000.00]
},
拍卖价格:{
要求:正确,
数字:对,
范围:[1.00,500000.00]
}, 
国家:{
必填项:true
},
选择3:{
必填项:true
},
选择2:{
必填项:true
},
拍卖\邮资\类型:{
必填项:true
},
拍卖\邮资\类型\价格:{
数字:对,
范围:[0.00,500000.00]
},
拍卖\国际\邮资\类型\价格:{
数字:对,
范围:[1.00,500000.00]
},
欧洲1:{
数字:对,
范围:[1.00,500000.00]
},
俄罗斯1:{
数字:对,
范围:[1.00,500000.00]
},
北美1:{
数字:对,
范围:[1.00,500000.00]
},
澳大利亚1:{
数字:对,
范围:[1.00,500000.00]
},
南美洲1:{
数字:对,
范围:[1.00,500000.00]
},
非洲1:{
数字:对,
范围:[1.00,500000.00]
},
亚洲1:{
数字:对,
范围:[1.00,500000.00]
},
中东1:{
数字:对,
范围:[1.00,500000.00]
},
拍卖项目数量:{
要求:正确,
数字:对,
范围:[1,99]
},
拍卖详情:{
必填项:true
},
拍卖\国际\邮资\类型:{
必填项:true
},
列表类型:{
必填项:true
}
},
信息:{
拍卖价格:“请输入拍卖开始价格-十进制格式,最小值1.00”,
拍卖底价:“请输入拍卖底价-十进制格式0.00”,
拍卖价格:“请输入立即购买价格-十进制格式,最小值1.00”,
选择3:“请选择主类别”,
选择2:“请选择子类别”,
拍卖项目数量:“请输入Quentity-最小1-最大99”,
拍卖描述:“请输入拍卖描述-最少10个,最多1000个字符”,
清单类型:“请选择清单类型”,
拍卖\邮资\类型:“请选择邮资类型”,
拍卖\国际\邮资\类型\价格:“请以十进制格式输入国际邮资成本,最小值1.00”,
拍卖\邮资\类型\价格:“请以十进制格式输入邮资成本”,
拍卖\国际\邮资\类型:“请选择”,
国家:“请选择国家”,
},
submitHandler:函数(表单){
$('#submit').attr('disable',true.).css('pointer-events','none');
}
});

我认为这样的方法应该行得通

$( "#UploadForm" ).submit(function(){
  //some other code here
  $('#submit').attr('disable',true).css('pointer-events','none');
});
有一个属性“disable”通常会阻止按钮可用。指针事件是一个较新的css变量,可以执行与event.preventDefault()相同的操作

但违约也总是存在的:

$( "#UploadForm" ).submit(function(){
  //some other code here
  $('#submit').click(function(event){
     event.preventDefault();
  });
});
你在使用ajax吗?如果是这样,您可能希望在ajax发送回调后删除disable属性并将指针事件更改为auto


为了澄清这一点,我在这里给出的示例是仅按照问题要求执行并禁用提交按钮。没有更少,没有更多。它可以在不添加任何特殊内容的情况下进行并行验证。

我认为类似的方法应该可以工作

$( "#UploadForm" ).submit(function(){
  //some other code here
  $('#submit').attr('disable',true).css('pointer-events','none');
});
有一个属性“disable”通常会阻止按钮可用。指针事件是一个较新的css变量,可以执行与event.preventDefault()相同的操作

但违约也总是存在的:

$( "#UploadForm" ).submit(function(){
  //some other code here
  $('#submit').click(function(event){
     event.preventDefault();
  });
});
你在使用ajax吗?如果是这样,您可能希望在ajax发送回调后删除disable属性并将指针事件更改为auto


为了澄清这一点,我在这里给出的示例是仅按照问题要求执行并禁用提交按钮。没有更少,没有更多。它可以与side validate一起工作,而无需添加任何特殊内容。

最简单的方法应该适用于任何地方,显然您可以运行代码并在必要时重新启用它:

$(document).ready(function(){
    $("#submitBtn").on("click",function(){
        $(this).attr("disabled","disabled");
    });
});

最简单的方法应该适用于任何地方,显然您应该运行代码并在必要时重新启用它:

$(document).ready(function(){
    $("#submitBtn").on("click",function(){
        $(this).attr("disabled","disabled");
    });
});

在您的
提交程序中
禁用提交按钮:

$("#UploadForm").validate({

   //all your options here

   submitHandler:function(form){
       $('#submit').attr('disabled','disabled');
   }
});
submitHandler
仅在表单已成功验证时调用。只要返回true,表单将在之后正常提交。如果您想变得更花哨,而不是禁用submit按钮,那么可以使用一个全局变量来记住表单是否已提交,然后在第一次提交后从该函数返回false


第一次提交后禁用提交按钮的工作示例:
submitHandler中的禁用提交按钮:

$("#UploadForm").validate({

   //all your options here

   submitHandler:function(form){
       $('#submit').attr('disabled','disabled');
   }
});
submitHandler
仅在表单已成功验证时调用。只要返回true,表单将在之后正常提交。如果您想变得更花哨,而不是禁用submit按钮,那么可以使用一个全局变量来记住表单是否已提交,然后在第一次提交后从该函数返回false


第一次提交后,submit按钮被禁用的工作示例:

我遇到了相同的问题,我提供了一个简单的解决方案。 从javascript中,每次单击submit时,我都会在cookie中发送一个标志,然后在服务器端检查cookie,如果cookie