>我有一个表单存在于 q jQuery UI 模式和 Parsley.js 中,由于验证消息未显示在 UI 上,因此无法正常工作。
这是我一直在玩的代码:
$(function() {
$('#order_push').click(function() {
$('#add_contact').dialog('open');
});
$('#add_contact').dialog({
title: "Add Contact",
autoOpen: false,
modal: true,
width: 600,
height: 300,
buttons: {
'Create': function() {
var $form = $('#contact_frm').parsley();
if ($form.isValid()) {
alert('valid');
}
}
}
});
});
这是HTML和JS协同工作的完整示例。如果您通过将字段留空来玩这个小提琴,您将看到消息如何不显示。至少我希望我的字段如果无效则标记为红色,如果有效,则标记为绿色。像这样的东西
我在这里错过了什么吗?
您正在调用isValid
.文档指出(粗体!
isValid:不影响 UI 或触发事件。
你想要调用validate({force: true})
(如果执行异步验证,则调用whenValidate
)
运行在马克-安德烈的答案上,这应该是被接受的答案,因为它解决了主要问题......
关于评论中的第二个问题:
只需添加以下内容,它针对欧芹错误消息元素:
if($form.on('form:error')){
$(".parsley-errors-list").prev().addClass("error");
}
而这个 CSS:
.error{
border:2px solid red;
}
现在要删除keyup
上的错误类:
$("input").on("keyup",function(){
$(this).removeClass("error");
});
小提琴
您应该花点时间阅读欧芹文档...
;)