1

我的代码中有一个小错误。当用户选择日期字段时,会弹出一个日历并且可以单击一个日期,但验证会给出一个错误,好像是空的。

如果用户再次单击错误消失或如果他们单击提交,则表单将正常运行,即使仍然显示错误文本。

想清理这个松散的结尾,但其中一些代码不是我自己的,所以无法找到问题所在。

表单字段和验证功能在下面,工作副本在 jsfiddle 上。

表格代码是

<label class="control-label" for="date">Date:</label>
<input type="text" name="date" id="date" readonly onClick="GetDate(this);"/>
<button type="submit" class="btn btn-giant btn-primary">Submit</button>

验证声明是

jQuery(function () {
jQuery("#date").validate({
expression: "if (VAL) return true; else return false;",
message: "Please select a date."
});
});

我已经在 jsfiddle 上发布了一个工作示例。

http://jsfiddle.net/andrewgledhill/NdHGH/1/embedded/result/

谢谢。

4

1 回答 1

0

您需要在输入更改后进行验证。您在文本到达输入之前进行验证。你可以看到这个小提琴没有给出错误:http: //jsfiddle.net/NdHGH/4/

我还将您的 onclick 从内联 onclick 移开,以使其更易于理解:

jQuery(function () {
  jQuery('#date').on('click',function(){
    GetDate(this);
  });
  jQuery("#date").on('change',function(){
    validate({
      expression: "if (VAL) return true; else return false;",
      message: "Please select a date."
    });
  });
});
于 2013-01-09T23:32:13.940 回答