Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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
Javascript 使用Jquery第一次单击时禁用提交按钮_Javascript_Jquery_Forms_Submit Button - Fatal编程技术网

Javascript 使用Jquery第一次单击时禁用提交按钮

Javascript 使用Jquery第一次单击时禁用提交按钮,javascript,jquery,forms,submit-button,Javascript,Jquery,Forms,Submit Button,我目前有一个lightbox弹出窗口连接到提交按钮,该按钮仅在第一次单击提交按钮时显示。基本上,在某人提交表单之前,我们希望他们在点击提交按钮时看到这个弹出窗口。这一切都很好,但现在我需要让它在第一次点击时,表单不会提交/处理。但是,在第一次单击之后,需要启用submit按钮,以便提交表单 您知道如何将下面的代码更改为“提交”按钮仅在第一次单击“提交”按钮时才处理表单吗 <script type="text/javascript"> $('#Submitbutton')

我目前有一个lightbox弹出窗口连接到提交按钮,该按钮仅在第一次单击提交按钮时显示。基本上,在某人提交表单之前,我们希望他们在点击提交按钮时看到这个弹出窗口。这一切都很好,但现在我需要让它在第一次点击时,表单不会提交/处理。但是,在第一次单击之后,需要启用submit按钮,以便提交表单

您知道如何将下面的代码更改为“提交”按钮仅在第一次单击“提交”按钮时才处理表单吗

   <script type="text/javascript">
    $('#Submitbutton').one("click",function(e) {

    $('#lp').lightbox_me({
    centered: true,
    overlayCSS:{background: '#481d33', opacity: .45},
    overlaySpeed:0,
    lightboxSpeed:0
    });

    });
    </script>

$(“#提交按钮”)。一(“单击”,函数(e){
$('lp')。灯箱({
对,,
覆盖层:{背景:'#481d33',不透明度:.45},
超高速:0,
lightboxSpeed:0
});
});

您可以使用计数器确定点击次数:

 var count = 0;
 $('#Submitbutton').click(function(e) {
 count++;
 if(count==1)
 return;//return if clicked first time
 $('#lp').lightbox_me({centered: true,overlayCSS:{background: '#481d33', opacity: .45},overlaySpeed:0,lightboxSpeed:0});
 });

只需返回false就可以了。 或者,e.perventDefault()可能有助于事件冒泡

  $('#Submitbutton').one("click",function(e) {

     $('#lp').lightbox_me({
     centered: true,
     overlayCSS:{background: '#481d33', opacity: .45},
     overlaySpeed:0,
     lightboxSpeed:0
     });
    e.perventDefault();
     return false;
  });
在第一次提交时设置一个变量,然后在第二次提交时由于该变量而执行不同的操作

编辑:一致的引号和代码清理。

.one()
更改
.on()
。您可以声明一个变量来跟踪按钮是否被单击

var isAlreadytClicked = false;
$('#Submitbutton').on("click", function (e) {
    if (isAlreadytClicked == false) {
        isAlreadytClicked = true;
        return;
    }

    if (isAlreadytClicked) {
        //Do whatever you want on subsequent click

    }
});
添加行

$('SubmitBtn').attr('disabled',false)


在if块内。

您的代码将不起作用,因为您只听了一次单击。谢谢,我忘记了一次,只是将其更改为on:d这是最好的答案。它使用bool(小内存占用),它覆盖了您的lightbox代码,而且速度很快。我要做的唯一改进是,如果您使用表单元素绑定来提交表单,而不是单击提交。one()应该在显示更多示例代码后运行函数吗?或表达细节。
var isAlreadytClicked = false;
$('#Submitbutton').on("click", function (e) {
    if (isAlreadytClicked == false) {
        isAlreadytClicked = true;
        return;
    }

    if (isAlreadytClicked) {
        //Do whatever you want on subsequent click

    }
});
<input type="button"  id="SubmitBtn" value="Submit" onclick="return submitData();" disabled="disabled" >
//create a global variable for clicked or not
var submitBtnClicked = false;

function submitData()
{
 if(submitBtnClicked )
 {
   $('#SubmitBtn').attr('disabled',false);
   submitBtnClicked =true;
 }    
}