当字段已经填充时,jQuery Validate有时不起作用

我的页面中有一个更新表单,所有文本框都已填入用户的信息。 我在我的网站上使用了jquery-validation插件。 当表单没有任何默认值时,此插件可以正常运行而不会出现任何错误。

在我的表单中,有时错误消息显示我不知道发生了什么。 当我尝试删除文本框的某个值时,表单的初始加载示例将显示错误消息。 但是当我尝试删除其他文本框的值并再次测试错误消息显示的第一个文本框时。

你能帮助我吗?

这是我的代码:

profile.php

PROFILE UPDATE

'member-update', 'role' => 'form')); ?>
<input type="text" class="form-control input-sm show_popover" name="username" placeholder="username" data-toggle="popover" data-trigger="focus" data-placement="top" data-content="This will be use for security purposes." value="" />
<input type="text" class="form-control input-sm show_popover" name="email" placeholder="avjunky@email.com" data-toggle="popover" data-trigger="focus" data-placement="top" data-content="This will be use to email you for more updates." value=""/>
<input type="text" class="form-control input-sm" name="lastname" placeholder="your lastname" value="" />
<input type="text" class="form-control input-sm" name="firstname" placeholder="your firstname" value="" />

JS部分

  $('#member-update').validate({ rules: { username: { required: true, minlength: 6, remote: { url: "", type: 'post', data: {username: $('input[name="username"]').val(), selector: "input->get('user'); ?>"}, }, }, email: { required: true, email: true }, lastname: { required: true }, firstname: { required: true } }, messages: { username: { required: "The username is required", remote: "The username is already taken", }, email: "Your email address is required", lastname: "Your lastname is required", firstname:"Your firstname is required" }, });  

也许你没有意识到jQuery Validate插件是“懒惰的”。 这意味着在您首次单击“提交”按钮或填写一个字段,焦点,然后返回并删除该字段之前,将完全忽略required规则。

否则,如果您希望我们尝试一个特定的示例,那么您需要向我们展示浏览器所看到的呈现的 HTML和JavaScript,而不是您的PHP载入视图。

如果希望在包含值的表单加载后立即显示错误消息,则需要使用.valid()方法以编程方式触发页面加载validation。

 $(document).ready(function () { $('#myform').validate({ // initialize the plugin // rules & options }); $('#myform').valid(); // trigger a validation test on page load }); 

演示: jsfiddle.net/p7L0r2yz/