1

これは 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(); 

null 値を取得しています。私は何を間違っていますか?また、.cs ページのテキスト ボックス宣言が正しいかどうかを知りたいです。私がそれをファイアバグしたとき、それはまだ value="" であることを示しています。

4

3 に答える 3

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 );
于 2013-02-19T00:39:12.260 に答える
0

いくつかのこと:

  1. $obj は配列です。したがって、 $obj[] を使用して配列内の要素にアクセスする必要があります。
  2. 要素を取得したら、プロパティ .value を使用します

したがって、最初の要素については、

 sOptionList = $obj[0].value; 
于 2013-02-19T00:44:59.157 に答える
0

クリックまたはjsfunction内でdocument.readyを実行していませんでした。したがって、これを行うと修正されました:

        $(document).ready(function () {
       var $Opt = $("#txtSS_" + VersionID).val();
于 2013-02-19T23:13:03.783 に答える