在我的代码中,我有number = 0
element = 1
since `number = 0`, the value of the `element` i.e, `1` is returned.
two
,我想确认如果用户点击其中任何一个,它将执行buttons
(它已经有效),但如果它再次点击,它将不会做任何事情。
我的HTML代码:
function
我的功能代码(.js):
<html>
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script src="jquery-3.1.1.js"></script>
<script src="JS.js"></script>
<!--script src="JS2.js"></script-->
</head>
<body>
<p><input type="button" name="click" value="Button I" id="1" onclick="myFunction();"/></p>
<p><input type="button" name="click" value="Button II" id="2" onclick="myFunction2();"/></p>
</body>
</html>
谢谢你。
答案 0 :(得分:2)
对于jquery 1.6及以上版本,请使用:
$("input[type='button']").prop("disable", true)
对于小于1.6的版本,请使用
$("input[type='button']").attr('disabled','disabled');
我个人会在你的ajax调用之前把它放在你的函数的顶部。
这样,如果出现错误,您可以在错误处理程序中反转属性。
经过一些测试,我看到了你的意思,它不起作用。所以这里有一些替代品,包括原版:修改
$("input")[0].disabled = true;
$("input")[1].disabled = true;
假设您只有两个输入按钮而没有文本框。
另一种方式:
$("input").prop("disabled", true);
再次假设您的文档中没有其他输入。
最后,原始答案,稍有改动:
$("input[type='button']").prop("disabled", true);
注意“禁用”已更改为“已禁用”。
我使用Microsoft Edge尝试了所有这些并且每个都可以使用。我建议你从第一个开始,然后继续努力,直到找到适合你的解决方案。
您的代码看起来像
function myFunction(xx, xx, numberOrigin){
numberOrigin +=1;
$("input[type='button']").prop("disabled", true); <-- or one of the other choices here
$.ajax({
type: 'POST',
dataType: "json",
contentType: "application/json",
url: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
data: JSON.stringify({
"xxxxxxxxxxx":xxxxxxx,
"xxxxxxxxxxxx":xxxxxxxxx,
"xxxxxxxxxxxx":"xxxxxxx"
}),
success:function(output) {
console.log(output);
otherFunction(xxxxxxxxxxxxxxxx, numberOrigin);
},
error:function(output) {
}
});
}
干杯,祝你好运
答案 1 :(得分:1)
由于您使用的是JQuery,请考虑使用.one()函数。 http://api.jquery.com/one/
您可以像这样使用它。删除onclick =&#34; myFunction()&#34;来自每个输入元素。然后在.js文件中使用JQuery:
/**** add this here ****/
$(function(){
/* EDIT: I noticed you're wanting to call a different fcn
depending on which button is clicked. With my solution you
could handle this like so: */
$('input').one('click', function(){
if($(this).attr('id') !== '2') myFunction();
else myFunction2();
});
});
function myFunction(xx, xx, numberOrigin){
numberOrigin +=1;
$.ajax({
type: 'POST',
dataType: "json",
contentType: "application/json",
url: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
data: JSON.stringify({
"xxxxxxxxxxx":xxxxxxx,
"xxxxxxxxxxxx":xxxxxxxxx,
"xxxxxxxxxxxx":"xxxxxxx"
}),
success:function(output) {
console.log(output);
otherFunction(xxxxxxxxxxxxxxxx, numberOrigin);
},
error:function(output) {
/**** also add here NOTE: in myFunction2()
you'll want to call myFunction2 here ****/
$('input').one('click', myFunction);
}
});
}
one()函数在匹配选择器的每个元素上触发一次后将取消绑定。
编辑:如果您的AJAX请求恰好返回错误,您可能需要将点击处理程序重新附加到按钮。在这种情况下,将上面的代码添加到错误回调中,以便用户可以再次单击,如果这是您想要的行为。