我有以下脚本
<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");
});
});