如何登'如果验证未通过,则不提交表单
how don't submit form if validation not passed
我写了一个小代码片段:
html:
<label for="searchTextField">Please Insert an address:</label>
<br>
<form id = "formId" action="google.com">
<input id="searchTextField" type="text" size="50">
<input type="submit" value="is valid" id="submitId">
<form>
js:
var input = document.getElementById('searchTextField');
var options = {componentRestrictions: {country: 'us'}};
new google.maps.places.Autocomplete(input, options);
$("#formId").submit(function(e){
return editTerminal(e);
});
function editTerminal(id, e) {
function setPosition(){
console.log("logic");
};
return codeEditAddress(setPosition,e);
}
function codeEditAddress( callback, e) {
var address = document.getElementById('searchTextField').value;
var geocoder= new google.maps.Geocoder();
geocoder.geocode({ 'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
//should be submit
alert('good address');
} else {
//should NOT be submit
alert('wrong address');
e.preventDefault();
}
});
}
jsfiddle演示
现在我的表格还是提交了。如果显示wrong address
消息,我想实现它不提交。
请帮助修改代码。
而不是调用函数
$("#formId").submit(function(e){
return editTerminal(e); });
在表单提交中,您应该用按钮替换提交输入,并在它的onclick事件上启动您的功能。然后,如果地址有效,手动提交表格:
$("#formId").submit();
S.p
您的地理编码函数是异步的。您在其中所做的任何操作都不会影响事件处理。
对于提交事件,我总是返回false
$("#formId").submit(function(e){
editTerminal(e);
return false;
});
并为一个好的地址做一个纯js表单提交,以绕过提交侦听器:
document.myForm.submit();
http://jsfiddle.net/6pmou2zx/1
相关文章:
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- angularjs-控制器在表单提交时未调用
- 禁用带有字符白名单的表单提交
- 如何使用Google Analytics跟踪表单提交
- 使用javascript将表单提交到iframe目标中
- e.preventDefault在表单提交时被忽略
- AngularJS JQuery Ajax表单提交等效
- JavaScript表单提交帮助
- PHP表单提交和重定向
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- setTimeOut AFTER jQuery表单提交
- 从函数中选择要触发表单提交的正确元素
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- 表单提交问题,如何在我的URL末尾获得ID的值
- Javascript使用Confirm取消表单提交