为什么jQuery验证不能可靠地工作?

Hao*_*Hao 6 validation jquery

有时会出现不显眼的验证,有时则不然.

只有在我明确调用form的valid()函数时(在提交期间完成),不引人注意的验证才能可靠地工作

为什么会这样?

代码:

<script src="jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="jquery.validate.min.js" type="text/javascript"></script>
<script src="jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
<form action="/User/Input" id="fxUser634377199694370000" method="post">    
  <fieldset>
    <legend>Person</legend>
    <div class="editor-label">
      <label for="Firstname">Firstname</label>
    </div>
    <div class="editor-field">
      <input class="text-box single-line" data-val="true" data-val-required="The Firstname field is required." id="Firstname" name="Firstname" type="text" value="" />
      <span class="field-validation-valid" data-valmsg-for="Firstname" data-valmsg-replace="true"></span>
    </div>
    <div class="editor-label">
      <label for="Lastneim">Lastneim</label>
    </div>
    <div class="editor-field">
      <input class="text-box single-line" data-val="true" data-val-required="The Lastneim field is required." id="Lastneim" name="Lastneim" type="text" value="" />
      <span class="field-validation-valid" data-valmsg-for="Lastneim" data-valmsg-replace="true"></span>
    </div>
    <div class="editor-label">
      <label for="Age">Age</label>
    </div>
    <div class="editor-field">
      <input class="text-box single-line" data-val="true" data-val-number="The field Age must be a number." data-val-required="The Age field is required." id="Age" name="Age" type="text" value="" />
      <span class="field-validation-valid" data-valmsg-for="Age" data-valmsg-replace="true"></span>
    </div>
    <p>
      <input type="submit" id='fxUser634377199694370000_Saver' value="Save" />
    </p>
  </fieldset>
</form>

<script type="text/javascript">
  $(function () {
    $('#fxUser634377199694370000_Saver').click(function (e) {
      e.preventDefault();
      if ($('#fxUser634377199694370000').valid())
        ;
      else {
        alert('not ok');
        return;
      }
      alert($('#fxUser634377199694370000').serialize());
    });
  });
</script>
Run Code Online (Sandbox Code Playgroud)

功能代码,没有服务器代码,只有html和客户端(jquery库):http://www.sendspace.com/file/913i1w

jam*_*mon 5

文件说:"字段被标记为无效之前,验证是懒惰:提交表单的第一次之前,用户可以通过没有得到烦人的信息字段标签-他将不会在他有机会窃听实际输入一个正确的值".

这有什么不好的吗?

  • 这是预期的行为.用户可以编辑表单直到它意味着,然后单击"提交"并输入验证.从那一刻起,输入字段就会得到热切的验证.一旦字段的内容有效,错误消息就会消失,当内容被无效编辑时,它会再次出现. (2认同)