JavaScript 阻止多调用并禁用下一个调用



我有以下脚本

  <script type="text/javascript">
    $(document).ready(function () {
        $('#reader').html5_qrcode(function (data) {
            $('#<%=txtCodigo.ClientID%>').val(data);
            $("LinkButton1").attr("disabled", "disabled");
            __doPostBack('<%= LinkButton1.UniqueID %>', '');
        },
            function (error) {
            }, function (videoError) {
                alert("No hay cámara");
            }
        );
    })
    ;
</script>

而这个

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="qrDetectado">    </asp:LinkButton>

所以,当读者得到一个值时,它会调用一个 C# 方法 qrDetectado,无论如何,我已经多次看到,该方法被调用了不止一次,这是由于脚本在很短的时间内获得了几个值,我只对第一个感兴趣,所以我想避免脚本运行不止一次我添加

            $("LinkButton1").attr("disabled", "disabled");

脚本中禁用链接按钮,到目前为止它一直在我的本地服务器上工作,但是我不确定它是否会在实时服务器中工作,我这样做是否正确?

更好的方法是在调用函数时设置布尔值

var uncalled = true; 
$(document).ready(function () {
  $('#reader').html5_qrcode(function (data) {
    if(uncalled){
      uncalled = false;
      $('#<%=txtCodigo.ClientID%>').val(data);
      __doPostBack('<%= LinkButton1.UniqueID %>', '');
    }

  },
  function (videoError) {
    alert("No hay cámara");
  });
});

最新更新