你好我试图在从服务器填充到javascript变量之后读取一个文本框(runatserver),但是它给了我一个控制台错误“无法读取表单NULL”但是文本框填充了我想读的字符串
这是我的文本框:
<form runat="server">
<asp:TextBox ID="ServerSideTextBox" runat="server" />
</form>
这就是我在C#中填充它的方式:
ServerSideTextBox.Text= Object_JSON_Class.JSON_DataTable(dt);
它获取正确的数据也显示正确的数据字符串,但问题是我尝试读取文本框的值,如下所示:
var oServerSideTextBox= document.getElementById("ServerSideTextBox");
var oServerJSON_String=eval("("+oServerSideTextBox.value+")");
我得到一个控制台错误,我无法读取表单NULL,但文本框确实有我想要读入javascript变量的字符串,请帮助
答案 0 :(得分:1)
var txtToIncr = document.getElementById('<%=ServerSideTextBox.ClientID%>')
查看此link,了解如何通过javascript阅读ASP.Net控件
答案 1 :(得分:1)
试试这个:
var oServerSideTextBox= document.getElementById("<%=ServerSideTextBox.ClientID%>");
如果这不起作用,请尝试以下方法:
var oServerSideTextBox= document.getElementById("<%=ServerSideTextBox.ClientID%>_text");
当客户端的浏览器呈现时,会为组件分配不同的ID。您可以查看here以获取更多信息。
答案 2 :(得分:0)
将其放在文本框ClientIDMode="Static"
答案 3 :(得分:0)
如果您在母版页结构中使用它,您的服务器文本框的ID将会有所不同,请尝试查找其ID。因为它的实际ID可能是这样的ctl00_ContentPlaceHolder1_ServerSideTextbox。检查它。
将一个类分配给yout文本框,然后尝试此查找id。
$('.textbox').on('blur', function() {
var error = this.id;
alert(error);
)};
答案 4 :(得分:0)
阅读评论。我认为你指的是错误的文本框ID。 所以我做了一个小测试 - 这应该工作..如果没有从你的HTML查看来源 - 你可以看到ID。
<script type='text/javascript'>
function testvalue() {
var oServerSideTextBox = document.getElementById('<%=ServerSideTextBox.ClientID%>');
if (oServerSideTextBox == null) {
alert('this is null');
}
else {
alert(oServerSideTextBox.value);
}
}
</script>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="ServerSideTextBox" runat="server" Text="Testvalue" />
<input type='button' onclick='testvalue();' value='Click' />
</div>
</form>
</body>