Проверка формы .NET 2.0 с проблемами JQuery Validate () - PullRequest
2 голосов
/ 02 марта 2010

Я пытаюсь проверить форму в .NET 2.0 с помощью плагина JQuery Validate (), и он не работает. Я знаю, что мой код Jquery работает, когда я настраиваю функции для очистки текста по умолчанию текстового поля в focus (), и это работает, как и ожидалось.

Кажется, что метод form.validate () никогда не вызывается, поскольку у меня есть вызовы alert () в пользовательском методе проверки, который работает на отдельной тестовой странице HTML, но никогда не запускается при интеграции в страницу .NET.

Может ли это быть потому, что вся страница обрабатывается как форма в .NET? Если я хочу переопределить действие отправки по умолчанию и добавить некоторую проверку на стороне клиента, как я могу это сделать или я могу проверить только форму в коде? Спасибо.

мой сценарий:

<script src="js/jquery.validate.min.js" type="text/javascript"></script>
<script src="js/additional-methods.js" type="text/javascript"></script>
<script src="js/jquery.maskedinput.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {

        jQuery.validator.addMethod("checkfields", function(value, element) {

            if ($("#from_date").val() == "" && $("#to_date").val() == "" && $("#last_name").val() == "") {
                return false;
            }
        }, "Please enter either a last name, from date or to date.");

        $("input.from_date").mask("99/99/9999");
        $("input.to_date").mask("99/99/9999");

        $("#searchForm").validate({
            errorElement: "span",
            errorContainer: $("#error"),
            errorPlacement: function(error, element) {
                error.appendTo(document.getElementById("error"));
            },
            success: function(label) {
                $("#searchForm").submit();
            },
            rules: {
                last_name: "checkfields"
            }
        });
        $("#from_date").focus(function() {
            if ($("#from_date").val() == "mm/dd/yyyy") {
                $("#from_date").val("");
            }
        });
        $("#from_date").blur(function() {
            if ($("#from_date").val() == "") {
                $("#from_date").val("mm/dd/yyyy");
            }
        });
        $("#to_date").focus(function() {
            if ($("#to_date").val() == "mm/dd/yyyy") {
                $("#to_date").val("");
            }
        });
        $("#to_date").blur(function() {
            if ($("#to_date").val() == "") {
                $("#to_date").val("mm/dd/yyyy");
            }
        });
    });
</script>

И форма:

<form action="search.spax" id="searchForm" name="searchForm" method="post">

  <div id="error" style="display:none;">
      <span></span>.<br clear="all"/>
    </div>
  <table width="520" border="0" cellspacing="0" cellpadding="0" class="obit_form">
     <tr align="left">
      <th><label for="last_name">Last Name</label></th>
      <th></th>
      <th><label for="from_date">From</label></th>
      <th><label for="to_date">To</label></th>
      <th></th>
     </tr>
     <tr align="left">

      <td><input type="text" id="last_name" class="required date" name="last_name" value="" style="width:135px;" /></td>
      <td>and/or</td>
      <td><input type="text" id="from_date" class="required date" name="from_date" value="mm/dd/yyyy" style="width:75px;" /></td>
      <td><input type="text" id="to_date" class="required date" name="to_date" value="mm/dd/yyyy" style="width:75px;" /></td>

      <td><input type="submit alt="Search" title="Search" value="Search" name="submitButton" id="Submit2" /></td>
     </tr>
   </table>       
</form>

1 Ответ

1 голос
/ 02 марта 2010

Ты что-то делаешь?

$(document).ready(function() {

 $('#aspnetForm').validate({
 rules: {
        ctl00$chMain$tbLoginEmail: {
            required: true,
            email: true
        },
...

Я знаю, что жесткое кодирование идентификатора не идеально, но вы получите картину.

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