当点击事件在表单之外时,如何使用 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 重置已验证的字段?的主要内容,如果未能解决你的问题,请参考以下文章

捕获表单之外的鼠标/键盘事件(应用程序在后台运行)

如何防止HTMLFormElement.submit()调用表单提交[重复]。

关于antd如何在表单外点击触发表单验证的问题

JavaScript HTML DOM 事件

JavaScript HTML DOM 事件

MS-Access 2007 - 如何在点击事件中以编程方式访问子表单列数据