2014-01-24 7 views
0

Я пытался получить следующий Javascript для работы без какой-либо радости.Функция Ожидается в javascript

Я получаю ожидаемую функцию при вызове в диалоговом окне подтверждения.

Может ли кто-нибудь сказать мне, что я делаю неправильно.

Суть кода заключается в том, что я сначала проверяю, чтобы убедиться, что валидаторы формы не загорелись, тогда я получаю значения двух списков переключателей ASPNET, а затем проверяю, были ли элементы выбраны в двух списках флажков ,

Если у меня есть хотя бы один элемент, выбранный в полях, и для каждого из списков радиообмена установлено значение «да», я хочу открыть диалог подтверждения.

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" /> 

Любая помощь с этим будет оценена по достоинству.

Thanks Martin.

ответ

0

Проблема заключается в этой строке:

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

Вы создаете переменную для подтверждения вместилища CheckBoxList. Тогда, очевидно, что вы не можете использовать оригинальное поле подтверждения :). Подтвердить означает что-то еще. Используйте другое имя переменной.

+0

Doh! Спасибо за это – Martin

Смежные вопросы