2016-08-02 3 views
0

私は最近、レスポンシブにするためにコードを変更しました。そのため、jQueryコードを正しく使いこなして、小さなクイズに間違った答えを記録してしまいました。私が下に投稿したjavascriptは、質問がHTMLフォームタグに置かれていたときにうまく動作していました。フォームタグがもう私の質問を囲まないので、2行目( 'answer1'変数が宣言されているところ)のjQueryコードを正しく動作させるにはどうすればよいですか?どうもありがとう。キーパーツ、 'フォーム'タグが存在しなくなったときに提出された内容をテストするにはどうすればよいですか?

HTML

<div class="intro-header2"> 
    <div class="container"> 
     <h1>The capital of Croatia is ...</h1> 
     <p>&nbsp;</p> 

     <div class="radio" style="margin-top: 0px;"> 
      <label><input type="radio" name="capital" value="zagreb" id="zagrebID">&nbsp; Zagreb</label> 
     </div> 
     <div class="radio" style="margin-top: 10px;"> 
      <label><input type="radio" name="capital" value="debrovnik">&nbsp; Debrovnik</label> 
     </div> 
     <div class="radio" style="margin-top: 10px;"> 
      <label><input type="radio" name="capital" value="makarska">&nbsp; Makarska</label> 
     </div> 
     <div class="radio" style="margin-top: 10px;"> 
      <label><input type="radio" name="capital" value="moscow">&nbsp; Moscow</label> 
     </div> 
     <div class="radio" style="margin-top: 20px;"> 
      <input type="button" class="btn btn-info" value="&nbsp; Next &nbsp;" id="NextID"> 
     </div> 
    </div> <!--/.container--> 
</div> <!--/.intro-header2--> 

JS

$("#NextID").click(function(){ 
     var answer1 = ($('input[name=capital]:checked', '#myForm').val()); 
     if (answer1 == "zagreb") { 
      var QuestionNumber = "Question 1, The capital of Croatia."; 
      var QuizDesc = "Quiz questions on the country of Croatia."; 
      var name = localStorage.getItem('name'); 
      var email = localStorage.getItem('email'); 

      //pulls the current counter from local storage 
      var counter = localStorage.getItem('counter'); 
      //adds one to it 
      var counter = parseInt(localStorage.getItem('counter')) + 1; 
      //updates the global variable for counter 
      setCounter(counter); 

      passedQues(email, name, QuestionNumber, QuizDesc); 
      document.location.replace("page3.html"); 
      } 

     else if (!$("input[name='capital']:checked").val()) { 
      alert('Nothing is checked!'); 
      return false; 
    } 

     else { 
      var QuestionNumber = "Question 1, The capital of Croatia."; 
      var QuizDesc = "Quiz questions on the country of Croatia."; 
      var name = localStorage.getItem('name'); 
      var email = localStorage.getItem('email'); 

      //pulls the current counter from local storage 
      var counter = localStorage.getItem('counter'); 
      //adds one to it 
      var counter = parseInt(localStorage.getItem('counter')) + 0; 
      //updates the global variable for counter 
      setCounter(counter); 

      failedQues(email, name, QuestionNumber, QuizDesc); 
      document.location.replace("page3.html"); 
      } 
    }); 
+0

問題は何ですか? – brk

答えて

1

あなたは、もはやform要素を持っていない、と私はそれがmyForm

この値を持つid属性を持っていることを前提としていラインはID myForm

var answer1 = ($('input[name=capital]:checked', '#myForm').val()); 

この要素がもう存在しないので、入力値の要素内部inputの値が見つかりません。この行を次のように変更してみてください:

var answer1 = ($('input[name=capital]:checked').val()); 
+0

ありがとうございました。私はあなたのコードでもう一度試してみましたが、まだマークを逃しています。正解(zagreb)で質問に答えると、if文のその部分は無視され、zagreb以外が選択されたときに何をするかはelseにジャンプします。再度、感謝します。 –

+0

コードのエラーをチェックする必要があります。私は答えが正しく読み込まれていると確信しています(このフィドルを参照してください:https://jsfiddle.net/gm5bwvmb/) –

+0

うん、あなたは正しいです。それは完全に動作します。助けてくれてありがとう! –

関連する問題