2014-06-05 45 views
-1

我不知道爲什麼按鈕點擊功能不是在Javascript中觸發,我是否錯過了一些東西?我想:爲什麼按鈕不啓動javascript功能

aspx.page

<input type="button" id="tglBtn" onclick="changeName(this) " runat="server" /> 

<input type="button" id="tglBtn" OnClientClick="changeName(this);" runat="server" /> 

<input type="button" id="tglBtn" OnClientClick="changeName(this);return false;" runat="server" /> 

的Javascript

function changeName(obj) { 
     alert("hey"); 
     if ($(obj).attr("Value") == "Open") { 
      $(obj).val("Close"); 
     } 
     else { 
      $(obj).val("Open"); 
     } 
    } 
+1

假設你已經正確地包含你的腳本,你的第一個版本應該可以正常工作:http://jsfiddle.net/DyU7k/你是否檢查過控制檯是否有任何錯誤? –

+0

你包含jquery文件嗎? –

+0

是的,我有jQuery文件。 – Damkulul

回答

0

其實這工作,所以沒什麼問題。

這裏是我的代碼:

<script src="js/jquery.min.js" type="text/javascript"></script> 

<input type="button" id="tglbtn" onclick="changeName(this)" runat="server" /> 

    <script type="text/javascript"> 
     function changeName(obj) { 

      alert("hey"); 
      if ($(obj).attr("Value") == "Open") { 
       $(obj).val("Close"); 
      } 
      else { 
       $(obj).val("Open"); 
      } 
     } 
    </script> 

你有jQuery的?如果你沒有添加一個jQuery ..

0

我想你搞錯了......現在試試這個...

<asp:Button id="tglBtn" OnClientClick="return changeName()" runat="server"><asp> 
+0

你可以把runat =「server」放在任何HTML元素上。 –

0

OnClientClick是asp.net控制工作(不是你有應用服務器上運行HTML控件)。

所以第一行只剩下了。

<input type="button" id="tglBtn" onclick="changeName(this) " runat="server" /> 

這條線是運行的,但同時你做了Post Back,所以你可能沒有時間去看javascript的結果。當然,你可能還有其他一些JavaScript錯誤,如果你打開你的瀏覽器控制檯,你可以看到JavaScript是否運行出錯。

-1

改爲使用ASP:Button。 看到下面的代碼

<asp:Button runat="server" id="tglBtn" onclientclick="return changeName()" Text="submit" /> 
//in head section 
<script language="Javascript"> 
    function changeName() 
    { 
     alert("I am in function"); 
     document.getElementById("tglBtn").value = "New name"; 
     return false; 
    } 
</script> 

它能夠解決您的問題

+0

-1,因爲按鈕沒有呈現您輸入的id。其次,你可以傳遞'this'而不是通過id再次查看。要獲得渲染結果,你可以在頁面上輸入'<%= tglBtn.ClientID%>',或者應用靜態名稱。 – Aristos

+0

@Aristos'因爲按鈕沒有呈現id,因爲您已經輸入了它並不總是如果您不使用'Master Page'和'User controls',它就是相同的。 –

+0

@Şhȇkhaṝ好的,這是很好的編程?隨機放置它?因爲你完全離開它隨機 - 你留在如何asp.net決定如何創建id,如果asp.net改變一些顛覆,並改變這個作爲突破變化,去改變所有的網頁...除此之外,這是一個無論您是否將它放在第一頁上,都必須使用剪切代碼。 – Aristos