当 jQuery UI 对话框中的表单中调用 Parsley.js 时,错误消息没有出现?



>我有一个表单存在于 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");
});

小提琴

您应该花点时间阅读欧芹文档...
;)

最新更新