3

私はこれらの両方を試しました:

    <asp:HiddenField ID = "selectedHour" runat="server" Value="blahblah" />
    <input type="hidden" id="myHour" name="hour" Value="blahblah" runat="server"/>

そして、Javascriptで更新しようとしています:

     <script type="text/javascript">
      function addEventByClick(hour) {
        document.getElementById("myHour").Value = hour;
        alert(document.getElementById("myHour").Value);
        document.getElementById("dummyButton").click();
      }
     </script>

これは「機能します」:アラートは正しい番号を教えてくれます。

次に、[送信] をクリックすると、C# メソッド (asp.net コンポーネントをクリックして呼び出される) が呼び出され、次のことが行われます。

String h = myHour.Value;
//or
//String h = Request.Form["myHour"];

これは常に「blahblah」、つまり初期値を返します。

これらはすべて更新パネルにありますが、同じ ContentTemplate 内の同じ更新パネルにあります。

では、なぜ更新されないのでしょうか。

編集:ありがとう。完璧な答えが 3 つ出てくるのが嫌いなのですが、どれをチェックすればよいかわかりません...

4

3 に答える 3

3

valueの代わりに使ってみてくださいValue。ブラウザはこれらのことにうるさいです。

または、 jQueryを使用すると、問題が魔法のように消えます。

$('#myobject').val( 'new value' );

于 2011-06-09T18:29:39.940 に答える
2

生のhtmlの場合は、大文字ではない値で試してください:

document.getElementById("myHour").value = hour
于 2011-06-09T18:29:24.500 に答える
2

javascript は大文字と小文字を区別しません。試す:

replace document.getElementById("myHour").Value = hour; by 
        document.getElementById("myHour").value = hour; and 

document.getElementById("myHour").Value by 
document.getElementById("myHour").value
于 2011-06-09T18:30:37.637 に答える