2013-02-19 44 views
1

我在aspx.cs頁面中有這個,並試圖獲取我的js函數中的文本框的值。這是行不通的:如何在javascript中獲取文本框的值

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頁面中的文本框聲明是否正確。它仍然顯示當我螢火蟲它的值=「」。

+1

你怎麼知道這個值不是以'null開頭的? – 2013-02-19 00:36:14

+0

如果有錯別字,請更新問題 – Popnoodles 2013-02-19 00:38:29

+0

已編輯的問題 – user2085236 2013-02-19 00:41:14

回答

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); 
0

幾件事情:

  1. $ obj是一個數組。所以,你必須使用$ OBJ [],其中是一個數字
  2. 一旦你的元素,然後使用屬性.value的

數組中訪問一個元素因此,對於第一個元素,你將不得不

sOptionList = $obj[0].value; 
0

我沒有在我的點擊或我的jsfunction中做document.ready。所以,這樣做可以解決它:

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