Диалог Jquery или jqdialog в приложении MVC продолжается до действия контроллера до ответа - PullRequest
0 голосов
/ 14 июля 2011

У меня есть диалоговое окно jquery, которое я хочу отобразить, когда представление не содержит ожидаемого ответа.Проблема заключается в том, что выполнение кода продолжается до действия контроллера, прежде чем диалог будет принят ответом.

Вот код JavaScript для кнопки отправки.

$('#Submit1').click(function () {
        var yes = $("#yes");
        var no = $("#no");
        var errorInd = $("#errorMsg");

        if ((yes[0] == undefined || yes[0] == null) && no[0] == undefined || no[0] == null) {
            var answer = $("#answer");
            var answer2 = $("#answer2");
            if (answer[0] != undefined && answer2[0] != undefined) {
                if (answer[0].value == "" && answer2[0].value == "") {
                    errorInd[0].style.display = '';
                    $("#errorMsg").css({ visibility: 'visible' });
                }
            }
        } else if (!yes[0].checked && !no[0].checked) {
            // alert dialog
         $.jqDialog.confirm("Are you sure want to continue?", 
                        function () { CallSubmit();       },  // callback function for 'YES' button  
                        function () { alert("This intrusive alert says you clicked NO"); }  // callback function for 'NO' button            );
         //   $('#errorMessage').dialog('open');


        );

Кнопка отправки находится в пределахформа в этом представлении кода.

<% using (Html.BeginForm("UpdateAnswer", "Home", FormMethod.Post )) { %>
  <% foreach (var question in Model)  { %>

    <% if (question.AnswerType== 1) { %>

     <% Html.RenderPartial("YesNo", question);} %>
    <% else if (question.AnswerType == 0) {  Html.RenderPartial("TextView", question);} %>
    <% else if (question.AnswerType == 2) { Html.RenderPartial("TwoTextView", question); } %>
    <% else if (question.AnswerType == 3) { Html.RenderPartial("TextOnlyView", question); } %>
    <% else if (question.AnswerType == 5) { Html.RenderPartial("RadioListView", question); } %>

    <% else if (question.AnswerType == 7) { Html.RenderPartial("SingleDateTimeView", question); } %>

    <% else if (question.AnswerType == 6) { Html.RenderPartial("DateRangeView", question); } %>
      <input type="hidden"  name="qNumber" value='<%: question.QuestionID %>' />
      <input type="hidden"  name="answerType" value='<%: question.AnswerType%>' />


       <% } %>

  <div id="errorMsg" class="errorMsg"  style="display:none">* select yes or no</div>
  <input type="hidden"  name="groupCount" value='<%: Model.Count %>' /> 
  <input type="submit" value="Next" id="Submit1" name="submit"   />  
<%--    <li><%: Html.ActionLink("Error Message Dialog", "ErrorInAnswer", "Home", new { @class = "modalDlg", title = "Error Message" })%></li>
--%>  

<%}%>

Я потратил много времени на эту помощь, будет признательна за любую помощь.

Спасибо Трейси

1 Ответ

0 голосов
/ 14 июля 2011

Из вышеприведенного кода похоже, что вы обрабатываете отправку (вызывая CallSubmit) после того, как пользователь выбирает ОК / Да, поэтому в конце обработчика события возвращает false.

Изменение:

$('#Submit1').click(function () {
 .
 .
 .
 .
 //You existing code.

});

до

$('#Submit1').click(function () {
 .
 .
 .
 .
 //You existing code.
 return false;
});
...