2016-11-17 4 views
-2

クリックしたときにAllEntered() JavaScriptメソッドを呼び出すボタンがあり、最終的なif/elseに表示されるように、submission.htmlまたはadmin.htmlになるはずですが、それらのうち、私が現在いるページをリロードするだけです。これはフォームの中にあり、その目的はすべてのチェックボックス入力がチェックされているかどうかをチェックすることです。また、アラートはloop-numberが生成されないために入れません。JavaScriptのメソッドがHTMLで動作しない

button onclick="AllEntered()" class="myButton">Submit</button> 
    <script> 
     function AllEntered() 
     { 
      var ids = {"freshSoph", "participate", "respect", "leave", "illegal", "alcohol", "typeName"}; 
      var loopNumber = 0; 
      for(var i = 0; i < ids.length - 1; i++) 
       { 
        if(document.getElementById(ids[i]).checked) 
        { 
         loopNumber++; 
         alert(loopNumber.value); 
         } 
        } 
        if(loopNumber = ids.length) 
        { 
         window.open("submission.html"); 
        } 
        else 
        { 
         window.open("admin.html"); 
        } 
       } 
    </script> 
+0

JavaScriptを宣言する方法に誤りがあるようです。代わりに、 'var ids = ["freshSoph"、 "participation"、 "respect"、 "leave"、 "invalid"、 "alcohol"、 "typeName"]; Chromeを使用している場合は、F12キーを押してエラーを確認してスクリプトをステップ実行するためのデベロッパーツールを表示することもできます。 – vbguyny

+0

追加後の意味は何ですか?カーリーブラケット{そこに警告(loopNumber.value); – SMW

+0

@SachithMW if文に入るかどうかテストするだけでした。 –

答えて

1

ブラウザの開発者用ツールを開きます。エラーメッセージを読んでください。

あなたはタイプミスがあります。アレイは[]で作成され、{}ではありません。

(もちろん、フォームを送信すると、フォーム内の送信ボタンをクリックするとページがリロードされます)。フォームで

+0

ありがとう、ちょうどタイプミスで、javaとhtmlを取っていたので、ちょっと錆びていて、ボタンはタイプされていませんでした。コンテンツが提出されたばかりのボタンでした(申し訳ありませんがもっと明確になっているはずです) –

+0

@KyleHornacek - 型属性はありません。送信ボタンです。 – Quentin

+0

ありがとう、それは今すべての作品 –

-2

、このボタンの下に、そのように提出するタイプの隠し入力として1つの以上のボタンを追加します。

<button hidden type="Submit"> 

あなたの問題はあなたがタイプの送信ボタンを欠けていることに起因することができます。

フォームにSubmitタイプのボタンがない場合(クリックすると、ターゲットが指定されていない場合はフォームがターゲットまたはTO ITS SELFに送信されます)、これはポストバックと呼ばれます。任意のボタンを使用して、提出イベントライザーとしてクリックします。

実際の送信ボタンを追加すると、このデフォルトの動作が削除され、コントロールが非表示になってもコントロールがアクティブではないため、ユーザーはクリックできなくなります。

+0

ありがとう、私は今働くことになった –

+1

Err。いいえ。デフォルトのボタンのタイプは 'submit'です。それは、他のボタンの存在(またはその欠如)とは何の関係もありません。 – Quentin

+0

はいボタンはdefautによって提出されます。したがって、フォーム内のボタンを押すことなく、サブミットせずに独自の関数を実行したい場合は、少なくとも1つのボタンを指定する必要があります。explicictyはtype = "Submit"に設定します。そうしないと、 – MKougiouris

関連する問題