Javascript不接受文本框的值

时间:2014-03-28 06:25:48

标签: c# javascript asp.net .net

我在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个文本框,我只想将其值发送给函数。

请帮帮我。

2 个答案:

答案 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)

Eshan是对的。

ASP.NET runtime根据服务器端控件的ClientIDMode属性值自动生成ID。

将其设为静态,它不会更改您指定的ID,您可以按照自己的方式控制客户端代码。