2015-09-15 91 views
1

提交值我想改變輸入的onclick但之後提交值它不工作,我的代碼如下:改變輸入後的onclick

window.callme = (function() { 
     var update = true; 
     return function(me) { 
      if(update) { 
       me.value = "Edit"; 
      } else { 
       me.value = "update"; 
      } 
      update = !update; 
     }; 
    }()); 
<input type=submit name=update id=update class='wrap_2' value='update' onclick='callme(this);'/>"`enter code here` 

回答

2

一個函數的聲明在當前範圍內創建一個變量指向功能。

在JavaScript中,每個函數創建一個新的範圍。

你分配給呼我匿名函數的範圍內創建功能。這不是全球性的。

onclick事件處理程序不在上述匿名函數的範圍內,因此該變量不可訪問。

請嘗試這樣的事情例如...

function callMe(){ 
     alert("Inside the function"); 
     this.value = "New Value";     
    } 


    window.onload = function(){ 
      callMe(); 
      document.getElementById("thisCall").onclick = callMe; 
    } 

編輯:

而這種代碼:

document.getElementById("thisCall").onclick = callMe; 

是工作,因爲它是在onload功能範圍內寫的,函數callMe被定義。

如果將它與onclick屬性一起使用,它將不起作用,因爲在全局範圍內不能識別callMe(),這就是您在那裏得到callMe is not defined的原因。

希望這有助於..讓我知道:)

+0

由於它的工作,但它不顯示第二值,什麼,當你點擊它提交按鈕,它出現,並再次回到先前的值 –