0

我有一个 Web 应用程序,其中包含许多将数据提交到 MySQL 数据库的表单。

在我拥有的所有页面上,我输入的include 'settings.php';任何内容都会出现在每个页面上(CSS 链接、JS 代码等)

我可以在我的 settings.php 文件中放置一个最好的 JS 代码,以便"onClick"在所有页面上的每个按钮上放置一个事件。

我希望它这样做:

onClick="this.disabled=true; this.value='Please Wait…';"

因此,在站点内的所有表单上,单击的每个按钮都会显示Please Wait...文本,直到提交表单

4

4 回答 4

1

显然,大多数回答这个问题的人从未听说过事件委托。

window.addEventListener("click",function(e) {
    var t = e.srcElement || e.target;
    if( !t.tagName) t = t.parentNode;
    if( t.tagName == "INPUT" && t.type.toLowerCase() == "submit") {
        t.disabled = true;
        t.value = "Please wait...";
    } 
},false);
于 2013-07-30T15:31:02.737 回答
0

你真的不应该使用onClick=...相反,通过 JS 绑定动作:

document.getElementById('element-id').onclick=function(){
    alert('Hello World');
}
于 2013-07-30T15:25:39.487 回答
0
// very simple with jQuery
$(document).on('click', 'button,input[type="button"],input[type="submit"]', function (e) {
    var $this = $(this).prop('disabled', true);

    if ($this.is('button')) {
        $this.html('Please wait...');
    } else {
        $this.val('Please wait...');
    }
});
于 2013-07-30T15:28:04.340 回答
0

这样的事情应该这样做:

(function() {
    var buttons = document.getElementsByTagName('button');
    for (var i=0,len=buttons.length; i<len; i++) {
        buttons[i].addEventListener('click', function() {
            this.disabled = true;
            this.innerHTML = "Please Wait...";
        });
    }
})();

http://jsfiddle.net/ryanbrill/5WYN9/

于 2013-07-30T15:29:50.960 回答