Проверка JQuery с использованием addClassRules: чего мне не хватает? - PullRequest
1 голос
/ 14 сентября 2010

Я собрал фрагмент кода в ASP.NET MVC, в котором я пытаюсь использовать методы addClassRules валидатора jQuery. Из того, что я могу сказать, я беру это прямо из примеров на

http://docs.jquery.com/Plugins/Validation/Reference

Но страница только что отправлена, на ней нет ошибок. Я хотел бы использовать шаблон «addClassRules» для проверки, потому что я пишу динамические формы.

Вот мой взгляд.

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ValidateMyForm</title>
    <script src="<%= Url.Content("~/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script>
    <script src="<%= Url.Content("~/Scripts/jquery.validate.js") %>" type="text/javascript"></script>
</head>
<body>
    <% using (Html.BeginForm()) { %>        

        <input type="text" value="" name="customer1" class="customer" />
        <input type="text" value="" id="customer2" name="customer2" class="customer" />
        <input type="text" name="customer3" class="customer" />

        <p>
            <input type="submit" name="submit" value="Submit" />
        </p>
    <% } %>
    <script language="javascript" type="text/javascript">
        jQuery(document).ready(function () {
            // alias required to cRequired with new message
            $.validator.addMethod("cRequired", $.validator.methods.required, "Customer name required");
            // alias minlength, too
            $.validator.addMethod("cMinlength", $.validator.methods.minlength, $.format("Customer name must have at least {0} characters"));
            // combine them both, including the parameter for minlength
            $.validator.addClassRules("customer", { cRequired: true, cMinlength: 2 });
        })
    </script>
</body>
</html>

Есть предложения?

ОБНОВЛЕНО: Полностью функциональный код ...

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ValidateMyForm</title>
    <script src="<%= Url.Content("~/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script>
    <script src="<%= Url.Content("~/Scripts/jquery.validate.js") %>" type="text/javascript"></script>
</head>
<body>
    <% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "demoform" }))
        { %>        

        <%: Html.TextBox("myTextBox", "", new {@class = "cRequired"}) %>

        <p>
            <input type="submit" name="submit" value="Submit" />
        </p>
    <% } %>
    <script language="javascript" type="text/javascript">
        jQuery(document).ready(function () {
            $.validator.addClassRules("cRequired", { required: true });

            jQuery("#demoform").validate();
        })
    </script>
</body>
</html>

Ответы [ 3 ]

1 голос
/ 14 сентября 2010

Получается, что вы ДОЛЖНЫ иметь следующую строку в функции jQuery (document) .ready ().

jQuery("#demoform").validate();

"demoform" - это имя вашего элемента Form.В моем случае (MVC) я дал это имя следующим образом ...

<% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "demoform" })) { %>  
1 голос
/ 14 сентября 2010

Никогда раньше не использовал этот валидатор, но, похоже, ваш синтаксис немного не работает. Кроме того, вы нигде не определяете cRequired.

Обратите внимание, что ни одно из следующего не было проверено.

Сначала вам нужно определить cRequired:

$.validator.addMethod("cRequired", $.validator.methods.required,
  "Customer name required");

Затем вам нужно добавить валидатор в класс (где «YourClassName» - это класс, к которому следует обратиться.)

jQuery.validator.addClassRules("YourClassName", {
  cRequired: true
});

OR

jQuery.validator.addClassRules({
 YourClassName: {
   cRequired: true
 }
});

Затем вам нужно будет добавить класс к вашим входам:

<input id="txtOne" type="text" class="YourClassName">
<input id="txtTwo" type="text" class="YourClassName">
<input id="txtThree" type="text" class="YourClassName">

Надеюсь, это поможет ...

Источники:

0 голосов
/ 03 октября 2010

Вы можете попробовать этот плагин проверки jQuery

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