2015-09-15 13 views
0

我在我的網頁上有3個按鈕,名爲btn_newsletter_wide,btn_newsletter_desktopbtn_newsletter_mobile,它們應該提交表單,但在此之前,我想根據按下的按鈕應用一些特定的驗證。所有按鈕對一個函數都有一個onclick動作,通過下面的Switch選擇來確定應用的驗證;在Switch語句中點擊使用按鈕

function validate_forms() { 

    var btnSelected = (this.id) 

    switch (btnSelected) { 

     case "btn_newsletter_wide": 
      validate_form_newsletter_wide(form); 
      break; 

     case "btn_newsletter_desktop": 
      validate_form_newsletter_wide(form); 
      break; 

     case "btn_newsletter_mobile": 
      validate_form_newsletter_wide(form); 
      break; 
    } 


} 

但似乎並沒有工作,在調試它,我發現btnSelected=undefined所以正確的函數調用不會發生。所以它必須是我試圖將所選按鈕的ID傳遞給變量的方式,經過一些修改之後,我無法糾正它。

有人可以指點我在正確的方向請。

+0

你在哪裏調用'validate_forms',包括代碼? – depperm

+0

在validate_forms()中傳遞此值。示例:validate_forms(this) –

+0

您應該在click處理程序中獲取「event」對象,該對象具有「target」屬性,該屬性將指向被單擊的實際節點。這應該有所幫助 – Tarang

回答

1

如果你的內聯按鈕事件中,你必須explcitly通過這個對象引用

<button id="yourbutton" onclick="validate_form(this)"> // pass this object explicitly 

// or addEventListener more recommended way to do 
document.getElementById("yourbutton").addEventListener("click", validate_form); 

// or attach onclick event 
document.getElementById("yourbutton").onclick = validate_form; 

要附加功能相同的多個元素看到此鏈接JavaScript click event listener on class