我正在使用这段代码在网页上制作文本按钮
<a href='#' onclick="new Ajax.Updater('history', '/responsesG', {parameters: {name: '%s', port: '%s', profil: '201', action: 'profile'},
insertion: Insertion.Top}
); return false;">Do something</a>
因为这是一个昂贵的调用,我想阻止用户多次单击它,因为它进行异步调用,并且他们会得到例如同一件事的 3 个响应(因为响应持续 3 到 5 秒),我尝试了选项
asynchronous: false
同样成功(失败)。我该怎么做?
编辑:
<a href="#" onclick="diagnostika('mac_adresa');return false;">-Mac address</a>
<script type="text/javascript">
function diagnostika(akcija) {
if(!this.clicked) {
this.clicked = true;
button = this;
new Ajax.Updater('history', '/responsesG', {
parameters: {
name: '%(name)s',
port: '%(port)s',
action: akcija},
insertion: Insertion.Top,
onComplete: function() {
button.clicked = false;}});}
return false;};
</script>
这就是我最终实现的。
最佳答案
为您的链接提供唯一的 ID 属性,例如:
<a href="#" id="foo">Do something</a>
然后在 JavaScript 中您可以执行以下操作:
$("foo").observe("click", function() {
this.disabled = true;
new Ajax.Updater("history", "/responsesG",
{ parameters: { name: "%s",
port: "%s",
profile: "201",
action: "profile" },
insertion: Insertion.Top });
return false;
});
关于javascript - 原型(prototype): How to prevent button pushing until response is made,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/939915/