1

ボタンのクリック時にJavaScriptで無効/再有効化されるチェックボックスのあるページがあります。チェックボックスを無効にしないと、その値は正しく投稿されますが、チェックボックスを一度でも無効にすると、値なしで投稿されます(チェックした場合でも「name =」として投稿されます)。firebug で POST 値を調べました。

なぜこのように振る舞うのですか?何か不足していますか?無効なコントロールが投稿されていないことをどこかで読んだことがありますが、それは問題ありませんが、送信をクリックしてもこのコントロールは無効になりません。

これをテストするために、より複雑なセットアップで ASP.NET を使用していますが、本質的にこれが問題の核心です。ブラウザはFF最新です。

非常によく似た質問を見つけましたが、答えはありませんでした: 無効化されたコントロールが再度有効化されていますが、コンテンツをサーバーにポストバックしていません

4

2 に答える 2

0

チェックボックスを無効にして再度有効にするのはどのくらい正確ですか?disabled属性ブール属性です。値ではなく、属性の存在は、それが無効であることを意味します。これらのチェックボックスはすべて無効になっています。

<input type="checkbox" name="cheese" disabled>
<input type="checkbox" name="cheese" disabled="disabled">
<input type="checkbox" name="cheese" disabled="">
<input type="checkbox" name="cheese" disabled="true">
<input type="checkbox" name="cheese" disabled="false">
于 2012-12-14T14:19:09.060 に答える
0

エラーは、提出されたデータの私の解釈にあるようです。TJが正しく指摘したように(解決策に導いてくれたのでありがとう!)、チェックボックスがチェックされていない場合、私の場合のように「cbName =」ではなく何も送信されません。

本当の問題 (私がこの質問を提起した理由) は、ASP.NET がポストバックのチェックボックスを認識しなかったことです。ただし、これは別の理由によるものでした。私の JavaScript 無効化関数も this.value = '' を実行しました。ただし、これを asp:checkbox に対して行うと、その値 (ステータス) はポストバックで認識されず、チェックボックスはサーバー上で常にチェックされていないように表示されます。ポストバックのチェック済みステータスを認識するために、ASP.NET には cbName=on が必要です。

少なくとも、今日、私は何かを学びました。うまくいけば、これは将来他の誰かにも役立つかもしれません。

于 2012-12-14T14:18:00.617 に答える