2010-07-14 44 views
1

如何將onchange="this.form.submit()"轉換成jQuery格式?如何將onchange =「this.form.submit()」轉換爲jquery

<form action="process.php" method="post"> 
    <select name="qty" onchange="this.form.submit()"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    </select> 
</form> 

我有一個問題,因爲有些瀏覽器會做對process.php什麼,如果使用onchange="this.form.submit()"

讓我知道..

回答

3

你不需要做任何事情。雖然您可以將this.form.submit()更改爲$(this).closest('form').submit(),但這樣做不會產生任何影響(除了可讀性稍差)之外,因爲所有jQuery都會執行此操作,因此請致電this.form.submit()

如果您在使用純JavaScript提交表單時遇到問題,您仍然會遇到與使用jQuery提交表單相同的問題。究竟是什麼問題?

在任何情況下,您通常不應該使用自動提交選擇框。他們打破了鍵盤的可訪問性(因爲IE從鍵盤使用中過早地觸發了onchange)並且它們與後退按鈕的交互性很差。

+0

嗯..正確。我需要找出究竟是什麼問題。 – kampit 2010-07-14 09:11:22

6

像這樣:

$('select[name="qty"]').change(function(){ 
    $(this).parents('form').submit(); 
}); 
+0

如果可以選擇的名稱是'數量[]'做什麼? – kampit 2010-07-14 08:47:28

+0

不要忘記在DOM加載後綁定它: $(document).ready(function(){ //將js放在這裏 }); – 2010-07-14 08:47:57

+0

你寧願用一個id來代替表單,而不是通過更重的父代。 – gillyb 2010-07-14 08:50:45

1

這樣的問題總是remember me of things like this。你爲什麼要使用jQuery來做這麼簡單的事情?給你的formnamedocument.myform.submit();(它將工作在IE3.0 +,FF1.0 +,Safari1.0 +,Opera5.12 +,Konqueror3.1 + ...(如何jQuery?))。

0

添加ID形成並寫:

$('#formid select[name=qty]').change(function(){ 
    $('#formid').submit(); 
});