2011-07-15 58 views
0

我的表單上有谷歌地圖搜索輸入。如果用戶輸入地址並點擊輸入,則提交整個表單而不是搜索地圖。我正在使用下面的代碼來防止這種情況:在用jQuery搜索時停止表單提交

jQuery('#gform_6').submit(function() { 
    // check if address field is empty or not 
    if(jQuery("#map_search").val()=="") // empty 
     return true; // ok submit form 
    else { // address filled 
     ChangeMap(); 
     jQuery("#map_search").val(""); 
     return false; 
    } 
}); 

但是,我可以使用此功能一次。如果我嘗試再次搜索並按回車,則什麼都不會發生。是否因爲我在提交函數中返回「false」?

回答

3

我相信你正在尋找event.preventDefault()

event.preventDefault:如果此方法被調用時,事件的默認動作不會被觸發。

jQuery('#gform_6').submit(function(event) { 
    event.preventDefault(); 
    // check if address field is empty or not 
    if(jQuery("#map_search").val()==""){ // empty 
    return true; // ok submit form 
    }else { // address filled 
    ChangeMap(); 
    jQuery("#map_search").val(""); 
    return false; 
    } 
+0

感謝您的幫助! – Casey

+0

我建議您查看以下鏈接,瞭解有關取消活動的更多詳情。有不同的級別,如事件冒泡,取消默認功能和停止回調執行:http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/ –