2015-10-05 55 views
1

我试图在欧芹中设置一个自定义验证,以便至少有两个字段中的一个填满。欧芹:自定义验证

我开始与香菜文档这个例子:

但它似乎不工作了旧的例子。

这里是我的HTML表单代码:

<form id="prestations-search-form" class="navbar-form" role="search" data-parsley-validate> 
<label for="search-input">Keywords</label> 
<div class="form-group"> 
    <input type="text" class="form-control" id="search-input" name="search-input" required data-parsley-group="searchText" /> 
</div> 
<div class="form-group"> 
    <label for="domaines-list">Select a domain</label> 
    <select id="domaines-list" class="form-control" name="domaine" required data-parsley-notblank data-parsley-group="searchDomaine"> 
     <option value="">All domains</option> 
     <option value="1">Domain 1</option> 
     <option value="2">Domain 2</option> 
     ... 
    </select> 
</div> 
<button id="submit-search" class="btn btn-block btn-primary" type="submit">Search</button> 

而我的JS香菜自定义的验证:

this.$(this.search_form_selector).parsley().on('form:validate', function (formInstance) { 
    if (formInstance.fields[0].isValid() || formInstance.fields[1].isValid()) { 
     console.log("My custom validator => OK"); 
     formInstance.validationResult = true; 
     return true; 
    } 
    console.log("My custom validator => KO"); 
    formInstance.validationResult = false; 
    return false; 
}); 

我赶 “的形式:验证” 事件,我的回调函数被执行。但是,即使设置了formInstance.validationResult = true;并返回true,我也无法验证并提交表单。

缺少文档。我不知道下一步该怎么做。

如果我的条件满足,如何验证表单并执行表单提交?如果没有,我怎样才能停止提交?

感谢您的帮助。

+0

看起来你的链接中的示例代码在验证两个字段后返回,因此它绝对不会触及'formInstance.submitEvent.preventDefault();'行。你想做什么不同?另外,如果你提供你的HTML,这将有所帮助。 – Marc

回答

0

我对你的问题感到抱歉。我们的许多例子都需要重新工作。如果验证失败,则应设置formInstance.validationResult = false

+0

Marc-André,我将我的荷兰芹更新到了主人的头上,并设置了'ormInstance.validationResult = false'或'true',但我没有得到预期的行为。 – Franck

+0

非常抱歉,我应该记住我修复了一个与此相关的错误。它在'master'的'src /'中,但不在'dist /'中。让我发布... –

+0

完成。请尝试2.2.0rc2 –