当点击事件在表单之外时,如何使用 FormStrap.IO/Bootstrap Validator 重置已验证的字段?
Posted
技术标签:
【中文标题】当点击事件在表单之外时,如何使用 FormStrap.IO/Bootstrap Validator 重置已验证的字段?【英文标题】:How Do You Reset Validated Fields Using FormStrap.IO/Bootstrap Validator When Click Event is Outside Form? 【发布时间】:2015-04-03 11:15:34 【问题描述】:我有一个从用户那里收集航班信息的表单。用户可以输入他们的出发日期、出发时间和出发地点以及他们的返回日期、返回时间和返回地点。在我的表单之外有一个简单的单选按钮选择,允许用户在往返航班(默认)和单程之间切换。如果用户单击单向,则使用 JQuery 禁用和隐藏返回时间和日期。
我正在使用 FormStrapValidaton.IO/Bootstrap Validator 并且我发现如果我为返回日期输入了无效字段,然后将航班从往返切换到单程,错误不会重置并且我无法提交表格。我查看了http://formvalidation.io/examples/clearing-field-when-clicking-icon/ 并清理了场地;但是,当有人单击单选按钮时,无法弄清楚如何从表单外部调用它。任何人都知道我如何为表单外的对象调用http://formvalidation.io/api/#reset-field 函数(或在表单验证逻辑中执行此操作的方法)?
【问题讨论】:
【参考方案1】:对于遇到此问题的任何人。
我认为关键是在表单函数之外,你必须确保你处理的是 jQuery 对象。
$('#bookingForm').data('formValidation').resetField($('#returnDate'));
【讨论】:
非常感谢。我到处搜索试图找到一种方法来做到这一点,你的答案奏效了!您是否有机会知道如何使其适用于 2 个或更多 ID?我试过了,但没有用:$('#formID').data('formValidation').resetField($('#element1,#element2'));
我认为 api 只允许单个字段formvalidation.io/api/#reset-field。您需要先获取元素,然后遍历它们以重置它们。【参考方案2】:
试试这个可以,你应该添加第二个参数,它的布尔值from plugin website
如果为真,该方法将字段值重置为空或删除选中/选中的属性(用于单选和复选框)。
var fv = $('#formId').data('formValidation');
fv.resetField('#element', true);
【讨论】:
【参考方案3】:http://formvalidation.io/examples/modal/
$('#loginForm').formValidation('resetForm', true);
【讨论】:
以上是关于当点击事件在表单之外时,如何使用 FormStrap.IO/Bootstrap Validator 重置已验证的字段?的主要内容,如果未能解决你的问题,请参考以下文章