javascript - 停用 Smarty Streets 功能

标签 javascript jquery validation smartystreets

我有一个使用 Smarty Streets Live Address 验证的表格。总的来说效果很好。但是,在用户已经开始输入地址信息的情况下,实时地址验证可能会妨碍。遇到的最具体的问题是地址信息已经输入但用户选择取消表单的情况。实时地址验证优先于操作并阻止尝试停用验证和清除表单。

可以找到问题的 fiddle 示例 here .

<form>
   <input type="text" id="street" name="street" placeholder="street"><br>
   <input type="text" id="city" name="city" placeholder="city"><br>
   <input type="text" id="state" name="state" placeholder="city"><br>
   <input type="text" id="ZIP" name="ZIP" placeholder="ZIP"><br>
   <button id="btnCancel">Cancel</button>
</form>
<script>
    var ss = jQuery.LiveAddress({ key: '5640108848289556771', debug: true })

    $(function () {
        $("#btnCancel").click(function (e) {
            e.preventDefault();
            alert("click");
            ss.deactivate();
        });
    });
</script>

当没有输入数据时,点击事件会按预期工作,但一旦输入地址信息,实时地址验证就会阻止事件处理程序触发。

单击取消按钮时,表单应该被清除或返回到上一页,但实时地址验证接管并阻止所有其他操作。

如何在按钮单击事件中停用实时地址验证?

最佳答案

您的取消按钮被映射为插件端的“提交”按钮。这意味着插件会识别该按钮以在单击时调用验证。验证将在实际执行您所看到的任何其他操作之前发生。有两种解决方案可以解决此问题。

  1. 向您的表单添加另一个按钮。该插件使用此选择器查找提交按钮 [type=submit], [type=image], [type=button]:last, button:last" Line 48 .如果您添加另一个按钮,那么您的取消按钮将是免费的,并且在单击时不会调用验证。
  2. 配置插件时,将 submitVerify 设置为 false。请参阅文档 here .这将禁用对表单上所有按钮的验证。仅当您单击插件复选标记气泡时才会进行验证。

注意:我在 SmartyStreets 工作

关于javascript - 停用 Smarty Streets 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27693535/

相关文章:

php - Symfony 验证器在无效集合上抛出异常

使用 .bind 进行 jQuery 表单验证 ('submit' )

javascript - 进行 jquery 字段验证的最有效方法

javascript - 如何将javascript变量发送到php mysql

validation - 调试 CloudFormation 验证问题

javascript - 全高 div 到屏幕大小 - JQuery

jQuery 将 div 附加到 div 中并使用 id 进行操作

javascript - 将节点添加到 D3 树 v4

javascript - 从 javascript 调用 ruby

javascript - jQuery 不监听动态生成元素的点击