我有一个使用 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>
当没有输入数据时,点击事件会按预期工作,但一旦输入地址信息,实时地址验证就会阻止事件处理程序触发。
单击取消按钮时,表单应该被清除或返回到上一页,但实时地址验证接管并阻止所有其他操作。
如何在按钮单击事件中停用实时地址验证?
最佳答案
您的取消按钮被映射为插件端的“提交”按钮。这意味着插件会识别该按钮以在单击时调用验证。验证将在实际执行您所看到的任何其他操作之前发生。有两种解决方案可以解决此问题。
- 向您的表单添加另一个按钮。该插件使用此选择器查找提交按钮
[type=submit], [type=image], [type=button]:last, button:last"
Line 48 .如果您添加另一个按钮,那么您的取消按钮将是免费的,并且在单击时不会调用验证。 - 配置插件时,将 submitVerify 设置为 false。请参阅文档 here .这将禁用对表单上所有按钮的验证。仅当您单击插件复选标记气泡时才会进行验证。
注意:我在 SmartyStreets 工作
关于javascript - 停用 Smarty Streets 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27693535/