Другая главная страница jQuery проблема / вопрос проверки - PullRequest
0 голосов
/ 29 апреля 2011

Я искал в Интернете, чтобы попытаться выяснить, чего мне не хватает, но я просто не могу этого понять.Я использую asp.net 4.0 (очевидно, веб-формы), мастер-страницы и проверку JQuery.Может кто-нибудь сказать мне, что я испортил?

В моем случае, я не буду ничего знать о полях, требующих проверки, поэтому я хотел бы использовать метод по умолчанию - просто иметь поля скласс = "требуемая электронная почта" и т. д.

Поля и кнопка отправки - это обычный HTML, а не элементы управления ASP.NET (длинная история).Когда страница рендерится, форма будет «form1», а не aspnetForm, как я видел у других людей.Когда кнопка отправки нажата, она не попадает ни в один из javascript.Это просто отправляет назад.Это даже не всплывающее окно с предупреждением.

Что я не правильно ссылаюсь?

Вот мой простой javascript:

      $(document).ready(function () {
      alert('in js');
      document.getElementById('form1').validate({
          alert('in val');
      });

Содержание страницы:

 <fieldset>
   <legend>A simple comment form with submit validation and default messages</legend>
   <p>
     <label for="cname">Name</label>
     <em>*</em><input id="cname" name="name" size="25" class="required" minlength="2" />
   </p>
   <p>
     <label for="cemail">E-Mail</label>
     <em>*</em><input id="cemail" name="email" size="25"  class="required email" />
   </p>
   <p>
     <label for="curl">URL</label>
     <em>  </em><input id="curl" name="url" size="25"  class="url" value="" />
   </p>
   <p>
     <label for="ccomment">Your comment</label>
     <em>*</em><textarea id="ccomment" name="comment" cols="22"  class="required"></textarea>
   </p>
   <p>
     <input name="btnsubmit" id="btnsubmit" class="submit" type="submit" value="Submit"/>
   </p>
 </fieldset>

Ответы [ 4 ]

3 голосов
/ 29 апреля 2011

Вы должны правильно закрыть свои функции и фигурные скобки. Большая проблема заключается в том, что вы должны ссылаться не на собственный объект DOM, а на объект jQuery. Ваш код должен быть:

$(document).ready(function(){
   alert('in js');
   $('#form1').validate({
      alert('in val');
   });
});

Ваша функция готовности также может быть сокращена до $(function(){...}); для простоты.

1 голос
/ 29 апреля 2011

Вы должны передать объект jquery для плагина validate. Вы пытаетесь передать объект DOM для проверки плагина, который, очевидно, не будет работать.

Так что замените document.getElementById('form1') на $('#form1').

Теперь проверка будет проходить гладко.

1 голос
/ 29 апреля 2011

Asp.net собирается разместить только одну форму на странице, поэтому используйте $ («форма»), чтобы найти ее, не зная идентификатора.Кроме того, параметры проверки не будут получать предупреждение, как оно есть, но вы можете переместить его в правильные обработчики, как я сделал ниже.Надеюсь, это поможет ...

$(function () {
    $("form").validate({
        submitHandler: function () {
            alert("submiting...");
            return false;
        },
        invalidHandler: function () {
            alert("invalid form");
            return false;
        }
    });
});
0 голосов
/ 29 апреля 2011

Вы используете raw JS для ссылки на форму, а плагину .validate нужен объект jQuery. Попробуйте вместо этого:

$(document).ready(function () {
  alert('in js');
  $('form').validate({
    alert('in val');
  });
...