欧芹:自定义验证

时间:2015-10-05 16:42:09

标签: javascript parsley.js

我正在尝试在Parsley中设置自定义验证,以便至少填充两个字段中的一个。

我在Parsley文档中开始使用此示例:http://parsleyjs.org/doc/examples/events.html

但它似乎是一个不再适用的旧例子。

这是我的表单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 Parsley自定义验证:

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;
});

我确实捕获了“form:validate”事件,并执行了我的回调函数。但是,即使设置formInstance.validationResult = true;并返回true,我也无法验证并提交表单。

缺乏文件。我不知道下一步该做什么。

如果我的条件得到满足,我该如何验证表格并执行表格提交?如果没有,我怎么能停止提交?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

对不起,我很抱歉。我们的许多例子都需要重新加工。

如果验证失败,则应设置formInstance.validationResult = false