0

次のコードが正しく実行されないようで、その理由がわかりません。 NonITView両方ともITView私の ASP ページの div です。 ページの読み込み時に「はい」または「いいえ」のいずれかを取得するページ上の ですtxtIsITasp:textbox

        if (document.getElementById("<%= txtIsIT.ClientID %>").value = "yes") {
            $("#NonITView").hide("slow");
            $("#ITView").show("slow");
        }
        else if (document.getElementById("<%= txtIsIT.ClientID %>").value = "no") {
            $("#ITView").hide("slow");
            $("#NonITView").show("slow");
        }
        else {
            alert("Error");
        }

if適切に評価しています。Firefox の Web コンソールで、jquery .show/.hide 関数を入力すると、div が適切に表示/非表示になります。これは、私を混乱させている原因の一部です。直さなければならないことはありますか?

4

6 に答える 6

1

両方の行にバグがある=場合は、それらを等しくし、チェックしません。

document.getElementById("<%= txtIsIT.ClientID %>").value = "yes"

ヒント、この種のバグを回避するには、次のように逆に書きます。

if( "yes" == document.getElementById("<%= txtIsIT.ClientID %>").value) {}

そうすれば、誤って書き込む=とエラーがスローされます。

于 2012-10-10T13:59:06.177 に答える
1

if ステートメントでは、代入を行っています。

document.getElementById("<%= txtIsIT.ClientID %>").value = "yes"

これは常に true と評価されます。したがって、その行を次のように変更します。

if(document.getElementById("<%= txtIsIT.ClientID %>").value === "yes")

3 つの等号にも注意してください。=== を使用することは現在では一般的な方法です。理由については、次の記事を参照してください。

JavaScript における == と === の違い

于 2012-10-10T14:01:23.973 に答える
1

このようなものを使用できます...

  $(document).ready(function() {

     $('#Button_ID').click(function() {
        if ($("#<%= txtIsIT.ClientID %>").val() == "yes") {
            $("#NonITView").hide("slow");
            $("#ITView").show("slow");
        }
        else if ($("#<%= txtIsIT.ClientID %>").val() == "no") {
            $("#ITView").hide("slow");
            $("#NonITView").show("slow");
        }
        else {
            alert("Error");
        }
     });
});
于 2012-10-10T14:02:52.277 に答える
0

jQuery と通常の JavaScript を混在させているのはなぜですか。jQueryスティックを使用する場合:

if ($("#<%= txtIsIT.ClientID %>").val() == "yes") {
  $("#NonITView").hide("slow");
  $("#ITView").show("slow");
}
else if ($("#<%= txtIsIT.ClientID %>").val() == "no") {
  $("#ITView").hide("slow");
  $("#NonITView").show("slow");
}
else {
  alert("Error");
}
于 2012-10-10T14:05:01.983 に答える
0

私の問題を見つけました。がUpdatePanelリロードされると、コンテンツの属性がデフォルトの状態 (この場合はstyle="display:none"両方の div にあった) に復元されます。コードが実行され、適切な div が表示され、すぐに再び非表示になります。これは、後で関数の中でUpdatePanelのポストバック トリガーを起動するように指示していたためです。

助けてくれてありがとう!

于 2012-10-10T15:01:52.060 に答える
0
(document.getElementById("<%= txtIsIT.ClientID %>").value = "yes")

する必要があります

(document.getElementById("<%= txtIsIT.ClientID %>").value == "yes")

if ステートメントについて==

于 2012-10-10T14:00:24.663 に答える