2016-11-17 68 views
-2

所以我有一個按鈕,當它被點擊時調用了AllEntered() javascript方法,並且您可以在最終的if/else中看到它,它應該得到submission.htmladmin.html,而不是去那些它只是重新加載我所在的當前頁面。這是所有的方式,其目的是檢查是否所有的複選框輸入檢查。此外,我沒有提出的戒備號碼也不會生成。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」,「參與」,「尊重」,「離開」,「非法」,「酒精」,「typeName」];'如果您使用Chrome瀏覽器顯示開發人員工具以查看任何錯誤並單步執行腳本,也可以按F12。 – vbguyny

+0

添加後的含義大括號{在那裏alert(loopNumber.value); – SMW

+0

@SachithMW只是爲了測試它是否會進入if語句 –

回答

1

打開瀏覽器開發者工具。閱讀錯誤消息。

您有一個錯字。數組是用[]而不是{}創建的。

(當然,它重新加載頁面,也就是點擊表單內的提交按鈕)。

+0

感謝它只是在錯字,很久以前採取java和html所以即時生鏽有點,並且按鈕不是類型提交它只是一個按鈕與內容被提交(抱歉應該更清楚) –

+0

@KyleHornacek - 它沒有類型屬性。這是一個提交按鈕。 – Quentin

+0

感謝它現在所有的作品 –

-2

在您的形式,這個按鈕下面,添加一個按鈕式的隱藏輸入提交如下所示:

<button hidden type="Submit"> 

你的問題可以通過這樣的事實造成的,你是缺少提交類型的按鈕。

當表單沒有提交類型的按鈕時(點擊時會將表單提交到其目標,或者如果沒有指定目標,則返回自己)這是我們稱之爲回發的方式,就像在發回自己的回覆中一樣)將使用任何按鈕點擊作爲提交事件提升者。

通過添加一個實際的提交按鈕,您可以刪除此默認行爲,同時還可以確保用戶無法點擊該按鈕,因爲控件在其隱藏時未處於活動狀態。

+0

謝謝,我現在工作 –

+1

Err。不。按鈕的默認類型是'submit'。它與任何其他按鈕的存在(或缺少)沒有任何關係。 – Quentin

+0

是一個按鈕是由defaut提交的。所以當你想在表單中按下一個按鈕而沒有提交,而是想要運行你自己的功能時,那麼你必須至少提供一個按鈕,將explicicty設置爲type =「Submit」,否則你會觸發一個回發 – MKougiouris