2016-09-14 8 views
-3

レベルが何かであり、度合いが何かであるかどうかを確認しようとしていますが、合計は特定のフィールドの値です。このコードは例1の場合にのみ機能し、変数に度が必要だと思うようになります。Javascript:If文 - 2つの変数?

例:

  • level = 1; degree = Terminal; 1_T = 205
  • level = 2; degree = NonTerminal; 2_NT = 230
$(document).ready(function(){ 
     $(".level input" && ".degree input").change(function(){ 
     var level = $(".level input").val(); 

     if (level == "1" || degree == "Terminal"){ 
      $(".total input").val($(".1_T input").val()); 
     } 
     else if (level == "2" || degree == "NonTerminal") { 
      $(".total input").val($(".2_NT input").val()); 
     } 
     }); 
    }) 

私が間違って何をしているのですか? 3行目のように2番目の変数を定義する方法があるかどうかを判断しようとしていました。

+5

'$("。レベル入力 "&&" .degree入力 ")'とは何ですか? – j08691

+1

変数 'degree'はどこにありますか? if(level == "1" && degree == "Terminal"){' – Pugazh

+1

@ j08691私はあなたのステートメント' if(level == "1" || degree == "Terminal" OPは2つの異なるセレクタ、別名 '$("。level input、.degree input ")に基づいて' change'ハンドラを接続したいと思っています。変更(...) ' – Phrogz

答えて

2
$(function(){ 
    $(".level input, .degree input").change(function(){ 
    var level = $(".level input").val(); 
    var degree = $(".degree input").val(); 

    // Perhaps you want (level=="1" && degree=="Terminal") ? 
    if (level == "1" || degree == "Terminal"){ 
     $(".total input").val($(".1_T input").val()); 
    } 
    else if (level == "2" || degree == "NonTerminal") { 
     $(".total input").val($(".2_NT input").val()); 
    } 
    }); 
}) 
+0

こんにちはPhrogz、私はあなたがそこでやったことを見て、はいそれは&&でなければなりません。その変更があってもまだ動作していません - どのレベルの選択も1_Tの値をプリセットします。 – Nestalna

+0

@Nestalna次に、コードをデバッグする必要があります。 Chromeデバッガでブレークポイントを設定します。あなたの変数の値を調べ、それらをあなたの期待と比較してください。リアルタイムでコードをステップ実行して、「なぜこのコンピュータを選択しているのですか?」と尋ねてください。あなたの文字列がまったく同じではないあなたの値に空白がありますか?スタックオーバーフローへようこそ。ソフトウェア開発へようこそ。あなたの仕事のほとんどは、コンピュータのように考える方法と、コンピュータが何をしているのかを理解する方法を学ぶことです。他の人に助けを求めるのは良いアイデアですが、唯一の方法ではありません。 – Phrogz

+1

あなたの助言と返信のおかげで、Phrogz、私はそれを数日前から行っていたので、私は尋ねると思った。トラブルシューティングは素晴らしいですし、私はそれをやって続けます、私はちょうど学位変数を追加する場所と方法を知るために十分にjavascriptを知らなかった。私は答えを見つけると、私は戻って報告します! – Nestalna

1

あなたの変数degreeを宣言しなければなりませんか、あなたがそれを使用する前に、度が定義されていない場合、その値はundefinedになりますので、それが失敗します。

あなたのコードがあることsould:

$(document).ready(function(){ 
    $(".level input, .degree input").change(function(){ 
    var level = $(".level input").val(); 
    var degree = $(".degree input").val(); 

    if (level == "1" || degree == "Terminal"){ 
     $(".total input").val($(".1_T input").val()); 
    } 
    else if (level == "2" || degree == "NonTerminal") { 
     $(".total input").val($(".2_NT input").val()); 
    } 
    }); 
}) 
  • ライン2:jQueryのセレクタを変更しました。それは例1と連携なぜ我々は、後で使用

用の可変程度を定義します。程度は
  • ライン4を変更した場合は計算しませんでした、その後>".level input"と - あなたは唯一の最初の文字列にマッチ?
  • javascript boolean operationが遅延チェックされています。あなたの最初のテストlevel == "1"が一度に真であるので、degreeが定義されているかどうかは気にしません。例2ではこの最初のテストは失敗し、degree変数は定義されていません。

    +2

    あなたが書いたコードが2行目のために動作しないため、下降しました。(また、FYI、「declare」と「example」のスペルが間違っています) – Phrogz

    +0

    こんにちはDarius、返信いただきありがとうございます。それは動作しませんでした:(行2の良いアイデア! – Nestalna