2014-01-24 34 views
0

我一直在試圖讓下面的Javascript沒有任何喜悅的工作。函數預計在javascript

我一直在調用確認對話框時獲得預期的功能。

誰能告訴我我做錯了什麼。

代碼的要點是,我首先檢查以確保表單驗證器不會觸發,然後我得到兩個ASPNET單選按鈕列表的值,然後檢查是否在兩個複選框列表中選擇了項目。

如果我在複選框中至少選中了一個項目,並且任一個單選按鈕列表都設置爲yes,那麼我想彈出確認對話框。

function FormSubmissionConfirm() { 

    if (Page_ClientValidate()) { 

     //get all the relevant form values 

     var showConfirm = false; 

     var storage = document.getElementsByName("<%: StorageRBL.UniqueID%>"); 
     var storageAnswer; 
     for (var j = 0; j < storage.length; j++) { 
      if (storage[j].checked) { 
       storageAnswer = storage[j].value; 
      } 
     } 

     var flat = document.getElementsByName("<%: FlatRBL.UniqueID%>"); 
     var flatAnswer; 
     for (var j = 0; j < flat.length; j++) { 
      if (flat[j].checked) { 
       flatAnswer = flat[j].value; 
      } 
     } 


     var confirm = document.getElementById("<%: preferedlist.ClientID%>"); 
     var confirmChkBoxCount = confirm.getElementsByTagName("input"); 
     var confirmAnswer; 
     for (var i = 0; i < confirmChkBoxCount.length; i++) { 
      if (confirmChkBoxCount[i].checked) 
       confirmAnswer = true; 
     } 

     var reminder = document.getElementById("<%: reminderList.ClientID%>"); 
     var chkBoxCount = reminder.getElementsByTagName("input"); 
     var reminderAnswer; 
     for (var i = 0; i < chkBoxCount.length; i++) { 
      if (chkBoxCount[i].checked) 
       reminderAnswer = true; 
     } 

     if (reminderAnswer ==true && confirmAnswer == true) { 
      if (storageAnswer == "yes" || flatAnswer == "yes") { 

       showConfirm = true; 

      } 
     } 

     if (showConfirm) 
      return confirm("Please confirm that the details that have been entered are correct"); 
     else 
      return true; 
    } 
    else { 
     return true; 
    } 
} 

這是按鈕的標記。

<asp:Button runat="server" Text="Confirm" CssClass="btn btn-lg btn-primary pull-right" ID="ConfirmBtn" OnClientClick="if (! FormSubmissionConfirm()) return false;" OnClick="ConfirmBtn_Click" CausesValidation="True" /> 

任何幫助,這將不勝感激。

謝謝 Martin。

回答

0

問題是此行中:

var confirm = document.getElementById("<%: preferedlist.ClientID%>"); 

你正在創建的的CheckBoxList的容器中確認變量。然後,很明顯,你不能使用原來的確認框:)。確認意味着別的東西。使用另一個變量名稱。

+0

Doh!感謝那一個 – Martin