javascript - 如果验证未通过如何不提交表单

标签 javascript jquery forms submit form-submit

我写了一个小代码片段:

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 DEMO

现在我的表单无论如何都会提交。 我想实现的是,如果显示错误地址消息,它不会提交。

请帮忙修改代码。

最佳答案

而不是调用你的函数

$("#formId").submit(function(e){
return editTerminal(e); });

在表单提交上,您应该用按钮替换提交输入,并在其 onclick 事件上启动您的函数。 然后,如果地址有效,请手动提交表单:

$("#formId").submit();

S.P

关于javascript - 如果验证未通过如何不提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28799017/

相关文章:

jquery - Geb:如何从下拉列表中选择一个值?

javascript - Angular : form. $valid 为 false,但 form.$invalid 也仍然为 false

JavaScript(node.js) 存储 .then 中的(var) 信息

javascript - 如何为每个注册用户生成一个二维码?

jquery - 点击 Safari Mobile 中的突出显示和 jQuery on() 函数会产生巨大的突出显示

php - 使用 JQuery 时是否有更好的方法来检查过期的 SESSIONS?

javascript - 单击按钮打开对话框

javascript - Mongoose - 删除选定的元素

jquery - iDangero.us Swiper 更新功能在幻灯片显示/隐藏后不起作用

c++ - 打开窗口时应用程序崩溃 qt