类似scriptaculous的组件,以避免双重提交

时间:2010-02-25 16:01:49

标签: javascript scriptaculous double-submit-prevention

我正在寻找一个脚本来阻止用户专门为长时间后台处理表格点击两次提交按钮。我想实现的不仅仅是功能性的,还有视觉上的吸引力。任何人都可以使用例如scriptaculous分享一些如何完成此操作的提示吗?

由于

2 个答案:

答案 0 :(得分:1)

使用原型你可以尝试这样的事情:

var DoubleSubmit = {
prevent: function(){
    var forms = document.body.select('form');
    forms.invoke('observe', 'submit', DoubleSubmit.observeSubmit);
},
observeSubmit: function(event){
    var submitButtton = event.element().select('input[type="submit"]')[0];
    submitButtton.disable();
    return true;
}};document.observe('dom:loaded',DoubleSubmit.prevent);

答案 1 :(得分:0)

这不是剧本,但我总是这样做:

HTML:

<form onsubmit="return checkDoubleSubmit(this) && yourSubmitroutine();">
  <input ...>
   ...
  <input type="hidden" value="0" id="dscheck">
</form

使用Javascript:

function checkDoubleSubmit(form) {
    var v = 0;
    var e = form.getElementById("dscheck");
    if (e != null) {
        v = e.value;
        v = v * 1;  // Coerce to number
        e.value = "1";
    }
    return v == 0;
}