2011-04-15 70 views
0

我試圖在輸入郵政編碼後自動提交表單,這將觸發谷歌地圖的顯示。this.form.submit與提交按鈕

如果我在表單中使用提交按鈕,代碼工作正常。表單提交和ajax代碼確實是事情,div被替換爲與郵政編碼相對應的谷歌地圖。

但是,如果我嘗試自動使用下面的代碼提交表單:

// prepare the form when the DOM is ready $(document).ready(function() { var options = { target: '#htmlExampleTarget' // target element(s) to be updated with server response

// other available options: 
    //url:  url   // override for form's 'action' attribute 
    //type:  type  // 'get' or 'post', override for form's 'method' attribute 
    //dataType: null  // 'xml', 'script', or 'json' (expected server response type) 
    //clearForm: true  // clear all form fields after successful submit 
    //resetForm: true  // reset the form after successful submit 

    // $.ajax options can be used here too, for example: 
    //timeout: 3000 
}; 

// bind to the form's submit event 
$('#htmlForm').submit(function() { 
    // inside event callbacks 'this' is the DOM element so we first 
    // wrap it in a jQuery object and then invoke ajaxSubmit 
    $(this).ajaxSubmit(options); 

    // !!! Important !!! 
    // always return false to prevent standard browser submit and page navigation 
    return false; 
}); 

});

 <form id="htmlForm" action="html-echo.php" method="post"> 
      Message: <input type="text" name="message" onKeyUp="if(this.value.length>4)this.form.submit()"> 

 <div id="htmlExampleTarget"> 
<script type="text/javascript"> 
$(function() 
{ 
    $("#map").gMap({ address: "Los Angeles", zoom: 13 }); 

}); 
</script> 

<div id="map" style="width: 547px; height: 320px; border: 1px solid #777; overflow: hidden;"></div> 
     </div> 

所有這一切發生的是形式的行動(ACTION =「HTML-echo.php」)頁面加載。

如何讓this.form.submit的行爲與提交按鈕相同?

謝謝!

回答

0

DOM方法form.submit()不會觸發提交處理程序。由於您使用的是jQuery,因此請使用$(this.form).trigger("submit")