我在asp.net中有文本框:
<asp:TextBox ID="txtLinkedTicket" runat="server" onBlur="javascript:saveChanges('txtLinkedTicket', document.getElementById('MainContent_txtLinkedTicket').Value);">
</asp:TextBox>
javascript中的Onblur函数:
function saveChanges(controlName, controlValue) {
alert(controlValue);
PageMethods.updateOnChange(controlName, controlValue, onSavingChange);
return false;
}
function onSavingChange(stringval) {
}
我将controlname及其值传递给function。
但是当我提醒它时,我没有获得文本框的价值。
它显示我'未定义'。
我错误地传递了价值吗?
请帮帮我。
注意:我不想这样做:
document.getEleme ....在javascript函数中,因为每个文本框中有10个文本框,我只想将其值发送给函数。
请帮帮我。
答案 0 :(得分: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>
答案 1 :(得分:2)
ASP.NET runtime根据服务器端控件的ClientIDMode属性值自动生成ID。
将其设为静态,它不会更改您指定的ID,您可以按照自己的方式控制客户端代码。