简体   繁体   English

一键验证后禁用提交按钮?

[英]Disable Submit Button after one click with validation?

I have a form that is passing data to a cc processing terminal, as well as writing PDF contracts and receipts.我有一个表单将数据传递到抄送处理终端,以及编写 PDF 合同和收据。 There is validation built into the form, and I am trying to add a function to disable the submit button after one click provided validation is passed.表单中内置了验证,我正在尝试添加一个功能以在通过单击提供的验证后禁用提交按钮。

I don't know a lot about post data, but I want to make sure it:我对发布数据了解不多,但我想确定一下:

1. Still posts the data. 2. Still validates. 3. Does not allow the user to submit multiple times.

Here is my POST chunk of code:这是我的 POST 代码块:

<form method="POST" action="partner_register_ihg.php" onSubmit="javascript:return WebForm_OnSubmit();"  id="docContainer" autoeventwireup="true" enctype="multipart/form-data" novalidate class="fb-toplabel fb-100-item-column fb-large selected-object" style="width: 800px;" data-form="preview">

And here is my submit section这是我的提交部分

<input type="submit" name="subbutton" onClick='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("subbutton", "", true, "", "", false, false))' id="subbutton" class="fb-button-special" value="Submit" />

Here is a small section of my validation code这是我的验证代码的一小部分

var RequiredFieldValidator30 = document.all ? document.all["RequiredFieldValidator30"] : document.getElementById("RequiredFieldValidator30");
RequiredFieldValidator30.controltovalidate = "item56_text_1";
RequiredFieldValidator30.errormessage = "Please enter the shipping zip code.";
RequiredFieldValidator30.display = "None";
RequiredFieldValidator30.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
RequiredFieldValidator30.initialvalue = "";
var RequiredFieldValidator31 = document.all ? document.all["RequiredFieldValidator31"] : document.getElementById("RequiredFieldValidator31");
RequiredFieldValidator31.controltovalidate = "item62_0_checkbox";
RequiredFieldValidator31.errormessage = "Please agree to Terms and Conditions.";
RequiredFieldValidator31.display = "None";
RequiredFieldValidator31.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
RequiredFieldValidator31.initialvalue = "";

var ValidationSummary1 = document.all ? document.all["ValidationSummary1"] : document.getElementById("ValidationSummary1");
ValidationSummary1.showmessagebox = "True";
ValidationSummary1.showsummary = "False";

In your submit button code just add javascript code: <input type="submit" [...] id="btn1" onclick="setTimeout(disableFunction, 1);"> and in Javascript add function:在您的提交按钮代码中,只需添加 javascript 代码: <input type="submit" [...] id="btn1" onclick="setTimeout(disableFunction, 1);">并在 Javascript 添加函数:

function disableFunction() {
    document.getElementById("btn1").disabled = 'true';
}

You can you if you are using jQuery form validator如果您使用的是 jQuery 表单验证器,您可以

$(document).ready(function () {
    $("#addOfficerForm").submit(function () {
        var total_error = document.querySelectorAll('.error').length;
        if(total_error === 0){
            document.getElementById("checkEditRestriction").disabled = 'true';
        }  
    });
});

HTML : HTML :

<button type="button" id="btnSubmit"> Submit </button>

Jquery/js :查询/js:

$('#btnSubmit').click(function(e){
 e.preventDefault();
 if(this.form.reportValidity()){
  $(this).prop('disabled',true);
  this.form.submit();
 }
});

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

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