如何在javascript中获取文本框值

时间:2013-02-19 00:35:25

标签: javascript asp.net

我在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页面中的文本框声明是否正确。它仍然表明,当我焚烧它时,值=“”。

3 个答案:

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

有几件事:

  1. $ obj是一个数组。所以你必须使用$ obj []来访问数组中的元素,其中是一个数字
  2. 获得元素后,请使用属性.value
  3. 所以对于第一个要素

     sOptionList = $obj[0].value; 
    

答案 2 :(得分:0)

我没有在我的点击或我的jsfunction中做一个文件。所以,这样做修复了它:

        $(document).ready(function () {
       var $Opt = $("#txtSS_" + VersionID).val();