2013-07-30 147 views
0

我有一個具有許多向MySQL數據庫提交數據的表單。全球範圍內的Javascript onClick

對我有include 'settings.php';所以無論我把會出現在每個頁面上的所有網頁(CSS鏈接,JS代碼等)

最新最好的JS代碼,我可以把我的settings.php文件放在一個所有頁面上的每個按鈕上的"onClick"事件。

我希望它這樣做:

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

所以在站點內的所有形式,每次點擊會顯示Please Wait...文本直到表單提交

+0

如果您正在偵聽這些按鈕來捕捉表單提交,您應該聽取表單的'onSubmit'事件。 – NDM

+0

啊,一些試圖定位'button'和'input'類型的解決方案已經忘記了'button.value'不會改變按鈕文本。 – 2013-07-30 15:33:49

回答

0

你真的按鈕不應該是使用onClick=...相反,通過JS綁定操作:

document.getElementById('element-id').onclick=function(){ 
    alert('Hello World'); 
} 
+0

onClick有什麼問題?我如何在上面的代碼中添加提交/按鈕禁用? – charlie

+0

那麼你在JavaScript中嵌入JavaScript是一件麻煩的事情,因爲它不是一個文件就像你發現自己一樣。我建議閱讀關於JavaScript,因爲這通常是您將學習的第一件事:'document.querySelector('button,input [type =「submit」]')' – andy

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...'); 
    } 
}); 
+0

從JS標籤描述:'除非標籤爲框架/庫也包含在內,預計會有純粹的JavaScript回答。「JQuery沒有被標記。另外,純JS也很簡單。 – webnoob

+0

啊整潔,我沒有意識到標籤有這樣的描述。謝謝。 :) – 2013-07-30 15:30:55

+0

我已添加此代碼: $(document).on('click','button,input [type =「button」],submit,input [type =「submit」]',function(e){ $(this).prop('disabled',true).val('Please wait ...'); }); 但表單動作並未完成 - 只是在上面執行此操作而沒有其他操作 – charlie

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/

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); 
+1

我打算使用'e.srcElement || e.target',但它在addEventListener中有意義(考慮到舊的IE不支持它)?我的IE技能有點生疏。 – bfavaretto

+0

哈哈我打算用事件代表團發佈一個本地js解決方案......然後想起了跨瀏覽器事件的血腥日子。所以我投入併發布了jQuery解決方案(帶有代表團)。 ;) – 2013-07-30 15:38:51

+0

使用此代碼時,它工作正常,但

charlie