MVC2 Проверка на стороне клиента в модальном диалоге Jquery - PullRequest
2 голосов
/ 19 мая 2010

Использование MVC2 В настоящее время у меня есть представление, создающее диалоговое окно jquery, содержащее частичное представление Edit. При отправке я ищу его для выполнения проверки на стороне клиента в классе электронной почты, который имеет обязательный атрибут аннотации данных для адреса электронной почты. Проверка на стороне сервера работает нормально, но я хочу, чтобы пользователь исправил ошибку в модальном диалоговом окне.

Ниже приведен код

<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm())
<div>
 <label for="EmailAddress">
                    Email Address :
                </label>
 <%= Html.TextBoxFor(model => model.Email.EmailAddress)%>
 <%= Html.ValidationMessageFor(model => model.Email.EmailAddress)%>
</div>

Скрипты, которые я загружаю,

<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery-1.3.2.min.js")%>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jqueryUI/js/jquery-ui-1.7.2.custom.min.js")%>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/Splitter/splitter-1.5.js")%>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/Scripts/Start.js")%>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/Scripts/extended/ExtendedControls.js")%>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery.validate.js")%>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/MicrosoftMvcJQueryValidation.js")%>"></script>

Глядя на сгенерированный html, я не получаю никаких данных JSON, сгенерированных для проверки на стороне клиента.

Любые решения с радостью приветствуются. S

1 Ответ

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

Я настоятельно рекомендую вам использовать скрипт проверки jquery.

jquery.validate.js имеет все функции для проверки на стороне клиента в диалоге jquery.

Прежде всего, добавьте jquery.validate.js на свой сайт. Мастер:

<script src="/Scripts/Using/jquery.validate.js" type="text/javascript"></script>

, а затем напишите свой сценарий примерно так:

    <script type="text/javascript">
    var createLinkObj;
    $(function () {

        $('#mydialog').dialog({
            autoOpen: false,
            width: 500,
            modal: true,
            buttons: {
                "OK": function () {

                    $("#myForm").validate({
                        rules: {
                            Name: {
                                required: true
                            },
                            Email: {
                                required: true,
                                email: true
                            }
                        },
                        messages: {
                            Name: " * ",
                            Email: {
                                required: " * ",
                                email: " Invalid e-mail."                        
                        }
                });

                $("#myForm").submit();
            },
            "Cancel": function () {
                $(this).dialog("close");
            }
        }
    });

    $(".mylink").click(function () {
        //change the title of the dialog
        createLinkObj = $(this);
        var dialogDiv = $('#mydialog');
        var viewUrl = createLinkObj.attr('href');
        $.get(viewUrl, function (data) {
            dialogDiv.html(data);
            dialogDiv.dialog('open');
        });
        return false;
    });
});
</script>

Как вы можете видеть, когда я нажимаю mylink, появляется mydialog, и перед отправкой myForm я проверил элементы myForm, а именно Name и Email.

Подумайте, что ваша форма содержит только имя и адрес электронной почты, и затем вы можете проверить эти элементы с помощью сценария проверки jquery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...