2014-03-28 68 views
0

的不接受價值我有文本框在asp.net爲:的Javascript文本框

<asp:TextBox ID="txtLinkedTicket" runat="server" onBlur="javascript:saveChanges('txtLinkedTicket', document.getElementById('MainContent_txtLinkedTicket').Value);"> 
</asp:TextBox> 

的onblur函數在javascript:

function saveChanges(controlName, controlValue) { 
    alert(controlValue);  
    PageMethods.updateOnChange(controlName, controlValue, onSavingChange); 
    return false; 
} 

function onSavingChange(stringval) { 
} 

我傳遞控件名稱和它的價值發揮作用。

但我沒有獲得文本框的價值,當我做它的警報。

它顯示我'未定義'。

我錯過了價值?

請幫幫我。

注:我不想做的事:

document.getEleme ....在JavaScript函數,因爲有10個文本框,因此每個文本框,我只是想送其價值才發揮作用。

請幫幫我。

+3

'.value',而不是'.Value'。 –

+2

哦......它做的工作,我不知道JavaScript是區分大小寫的.. –

回答

2

首先,設置ClientIDMode= "Static"爲網頁渲染,服務器可能會改變ID唯一性:

<asp:TextBox ID="txtLinkedTicket" runat="server" ClientIDMode="Static" onBlur="javascript:saveChanges('txtLinkedTicket', document.getElementById('MainContent_txtLinkedTicket').Value);"> 
</asp:TextBox> 

其次,jQuery的會更多更好的選擇,這樣做:

$('#txtLinkedTicket').blur(function(){ 

alert($(this).val()); 

}); 

注意:對於使用jquery,你需要在你的頁面中包含jquery腳本文件。

在你的頁面添加jQuery腳本:

<script src="http://code.jquery.com/jquery-1.7.1.js"></script> 
2

峨山是正確的。

ASP.NET runtime根據服務器端控件的ClientIDMode屬性的值自動生成ID。

使其成爲靜態,它不會更改您分配的ID,並且您可以按照自己的方式控制客戶端代碼。