Jac*_*ham 4 forms validation jquery modal-dialog semantic-ui
使用语义UI表单,模态和验证,我有一个模态的表单,如果表单无效(在提交时发生),我不希望模式关闭.
我可以阻止模态关闭的唯一方法是disabled在提交按钮中添加一个类.
我希望听取表格(实时)并disabled根据当前表单验证状态打开和关闭类.
我只能在提交表单后才能使其工作,但不是实时的
$('#myForm')
.form({
title: {
identifier : 'title',
rules: [
{
type : 'empty',
prompt : 'Please enter a title'
},
{
type : 'length[2]',
prompt : 'At least 6 characters'
}
]
}
},
{
onSuccess: function() {
$('#submit').removeClass('disabled');
},
onFailure: function() {
$('#submit').addClass('disabled');
}
}
);
Run Code Online (Sandbox Code Playgroud)
MTr*_*ran 12
而不是使用禁用提交,确保模式保持打开,即使单击提交(模态批准)按钮,并将决策关闭模式传递给语义UI表单验证事件(即onSuccess).
所以类似的东西:
$('.ui.modal').modal({
onApprove : function() {
//Submits the semantic ui form
//And pass the handling responsibilities to the form handlers,
// e.g. on form validation success
$('.ui.form').submit();
//Return false as to not close modal dialog
return false;
}
});
var formValidationRules =
{
title: {
identifier : 'title',
rules: [
{
type : 'empty',
prompt : 'Please enter a title'
},
{
type : 'length[2]',
prompt : 'At least 6 characters'
}
]
}
}
var formSettings =
{
onSuccess : function()
{
//Hides modal on validation success
alert("Valid Submission, modal will close.");
$('.modal').modal('hide');
}
}
$('.ui.form').form(formValidationRules, formSettings);
Run Code Online (Sandbox Code Playgroud)
请注意,"OnApprove"事件仅在您单击"ok"类的模式按钮时触发.所以你需要一个模态按钮,如下所示:
<div class="ui ok green basic inverted button">
<i class="checkmark icon"></i>
Submit
</div>
Run Code Online (Sandbox Code Playgroud)
这是我为了证明这一点而创建的扩展工作plunker代码:http://plnkr.co/edit/5fK7UuJIm7QTJGiu23NL?p = preview
我遇到了同样的问题,并与语义开发人员联系.请注意,他们将在2.0发布后重新审视一些额外的,明显的,缺失的表单行为.现在你可以在他们的github repo(form.js文件)上查看这个分支:https: //github.com/Semantic-Org/Semantic-UI/tree/next
使用一个stopgap函数is valid,true/false如果表单验证则返回该函数.
例如
if ( $('form').form('is valid') ) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
这将是 2.0