如何使用JQueryvalidation添加STOP Multiple Form Submit

我想在validation完成并且表单提交后停止禁用提交按钮,这样我就不会有多个DB插入。 我没有更新完整表单validation的post,因为大多数人说这是错误的,但我不这么认为。

这是提交:

 

并在jQueryvalidation下面:

     $( "#UploadForm" ).validate({ errorLabelContainer: "#messageBox", wrapper: "td", rules: {  auction_price: { required: true, number: true, min: 1.00 }, auction_reserve_price: { number: true, range: [1.00, 500000.00] },   auction_bin_price: { required: true, number: true, range: [1.00, 500000.00] },  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] },  auction_item_quantity: { required: true, digits: true, range: [1, 99] },  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'); } });  

submitHandler禁用提交按钮:

 $("#UploadForm").validate({ //all your options here submitHandler:function(form){ $('#submit').attr('disabled','disabled'); } }); 

只有在成功validation表单后才会调用submitHandler 。 只要它返回true,表格将在之后正常提交。 如果你想获得更多花哨而不是禁用提交按钮,你可以有一个全局变量来记住表单是否已经提交,然后在第一次之后从这个函数返回false。

第一次提交后禁用提交按钮的工作示例: http : //jsfiddle.net/ryleyb/hHAvD/

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

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

http://jsfiddle.net/calder12/8Syrh/1/

我有同样的问题,我带来了一个简单的解决方案。 从javascript我每次点击提交时都会在cookie中发送一个标志,然后检查服务器端的cookie,如果cookie是有效的,则执行相应的操作,否则将控件重定向到用户。

注意:ima java开发人员所以我不上传代码,但我认为这也可以在.net,php等语言中实现。

我觉得这样的事情应该有效

 $( "#UploadForm" ).submit(function(){ //some other code here $('#submit').attr('disable',true).css('pointer-events','none'); }); 

有一个属性“禁用”,通常会停止按钮可用。 指针事件是一个较新的css变量,可以与event.preventDefault()相同;

但是总有一些防止默认:

 $( "#UploadForm" ).submit(function(){ //some other code here $('#submit').click(function(event){ event.preventDefault(); }); }); 

你在用ajax吗? 如果是这样,您可能希望删除disable属性,并在ajax发送其回调后将指针事件更改为auto。

为了澄清这一点,我在这里给出的例子只是提出问题并禁用提交按钮。 没有更少,仅此而已。 它可以在一边validation,而不需要添加任何特殊的东西。