我在aspx.cs页面中有这个,并尝试在我的js函数中获取文本框的值。这不起作用:
result += result.Replace(sOptionText.ToString(), "<input type='text' id=\"txtSS_" + Version + "\" size='10' value=\"" +"\" runat = \"server\" style=\"display:none;\" />");
我的js功能在这里:
var sOptionList = "";
var $obj = $('#txtSS_' + VersionID);
if ($('#txtSS_' + VersionID).length > 0)
sOptionList = $obj.val();
我得到一个空值。我究竟做错了什么? 另外,想知道.cs页面中的文本框声明是否正确。它仍然表明,当我焚烧它时,值=“”。
答案 0 :(得分:1)
可能是因为未解析的客户端ID。根据页面/控件的ClientIDMode,控件将以限定值为前缀。因此,实际ID可能更像"ctrl0_ctrl1_txtABC"
,而不仅仅是txtABC
。
// javascript
var tb = $('#<%= this.txtMyTextbox.ClientID %>');
alert(tb.length);
alert(tb.val());
但是,您还将input
元素构建为字符串,而不是将其实例化为新控件。控制可能甚至没有被执行。
// c#
var tb = new TextBox();
tb.ID = "txtABC";
// Add the control to a container on the page. Any server control can be
// a container. This makes it part of the page lifecycle.
this.Controls.Add( tb );
答案 1 :(得分:0)
有几件事:
所以对于第一个要素
sOptionList = $obj[0].value;
答案 2 :(得分:0)
我没有在我的点击或我的jsfunction中做一个文件。所以,这样做修复了它:
$(document).ready(function () {
var $Opt = $("#txtSS_" + VersionID).val();