JQuery Dialog Validation - PullRequest
       12

JQuery Dialog Validation

1 голос
/ 31 мая 2011

Я пытаюсь выяснить, почему мои сообщения об ошибках не отображаются в диалоге и почему диалог не закрывается, когда я заполняю форму и нажимаю «Отправить письмо».Я уверен, что это то, что мне не хватает, но я не вижу этого.

Клиффы: я щелкаю ссылку (того же класса, так как существует несколько ссылок) на главной странице, чтобы открыть диалоговое окнокоторый запрашивает имя, адрес электронной почты и пароль.Имя и адрес электронной почты являются обязательными, а сообщения об ошибках должны отображаться в симпатичном окне UI Alert.Вместо этого сообщения об ошибках отображаются под текстовыми полями, и когда поля формы заполнены правильно, диалоговое окно не закрывается.

Что я делаю не так?

<html>
  <a href="Class1" class="Roster">View Roster</a>
  <a href="Class2" class="Roster">View Roster</a>
  <a href="Class3" class="Roster">View Roster</a>
  <a href="Class4" class="Roster">View Roster</a>
 .
 .
</html>   

$("#RosterForm").validate({
    errorContainer: "#errorblock-div1, #errorblock-div2",
    errorLabelContainer: "#errorblock-div2 ul",
    wrapper: "li",
    rules: {
        FullName: { required: true },
        Email: { required: true }
    },
    messages: {
        FullName: { required: "Please enter your name." },
        Email: { required: "Please enter your email address." }
    },
    submitHandler: function(form) {
        jQuery(form).ajaxSubmit({
            target: '#client-script-return-data',

            success: function() { $(".dialog_form").dialog("close"); successEvents('#client-script-return-msg'); }
         });
     }
});

$(".Roster").click(function(event) { 
  event.preventDefault();
  URL = "roster.cfm?" + $(this).attr("href");
  $('<div class="dialog_form">').dialog({
    title: "Student Roster",
    width: 800,
    height: 650,
    modal: true,
    open: function ()
      {
       $(this).parent().appendTo("#RosterForm");
       $(this).load(URL);
      },
    close: function() {
        $(".dialog_form").remove();
    },
    buttons: {
              "Send Email": function() { $("#RosterForm").submit(); },
              "Cancel": function() { $(this).dialog("close"); }       
             }
});

return false; 
});

1 Ответ

0 голосов
/ 31 мая 2011

Добавьте условие к кнопке «Отправить письмо»:

buttons: {
    "Send Email": function() { 
        if (jQuery(#RosterForm").valid() {
            $("#RosterForm").submit(); 
        } else {
            // display errors
        }
    },
...