在 jQuery UI 对话框中调用 Parsley.js 时没有出现错误消息?
Error messages not appearing while Parsley.js is called in a form living inside a jQuery UI dialog?
我在 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');
}
}
}
});
});
和here is a full example of the HTML and the JS working together. If you play a little bit with this Fiddle by leaving the fields empty you'll see how messages are not displayed. At least I would like my field to be marked in red if it's invalid or green if it's valid. Something like this
我是不是漏掉了什么?
您正在呼叫 isValid
。文档状态(粗体!):
isValid: Does not affect UI nor fires events.
您想调用 validate({force: true})
(如果进行异步验证,则调用 whenValidate
)
运行 对 Marc-André 的回答,应该被接受,因为它解决了主要问题...
关于评论中的第二个问题:
只需添加这个,它针对 Parsley 错误消息元素:
if($form.on('form:error')){
$(".parsley-errors-list").prev().addClass("error");
}
还有这个CSS:
.error{
border:2px solid red;
}
现在要删除 keyup
上的错误 class:
$("input").on("keyup",function(){
$(this).removeClass("error");
});
您应该花点时间阅读 the Parsley documentation...
;)
我在 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');
}
}
}
});
});
和here is a full example of the HTML and the JS working together. If you play a little bit with this Fiddle by leaving the fields empty you'll see how messages are not displayed. At least I would like my field to be marked in red if it's invalid or green if it's valid. Something like this
我是不是漏掉了什么?
您正在呼叫 isValid
。文档状态(粗体!):
isValid: Does not affect UI nor fires events.
您想调用 validate({force: true})
(如果进行异步验证,则调用 whenValidate
)
运行 对 Marc-André 的回答,应该被接受,因为它解决了主要问题...
关于评论中的第二个问题:
只需添加这个,它针对 Parsley 错误消息元素:
if($form.on('form:error')){
$(".parsley-errors-list").prev().addClass("error");
}
还有这个CSS:
.error{
border:2px solid red;
}
现在要删除 keyup
上的错误 class:
$("input").on("keyup",function(){
$(this).removeClass("error");
});
您应该花点时间阅读 the Parsley documentation...
;)