2010-03-20 56 views
2

我有我要在點擊按鈕是形式外提交表單,這裏是我的HTML:jQuery的提交表單的錯誤

<form id="checkin" name="checkin" id="checkin" action="#" method="post"> 
    <input type="text" tabindex="100" class="identifier" name="identifier" id="identifier"> 
    <input type="submit" tabindex="101" value="Submito" class="elsubmito" name="submit"> 
</form> 

這裏是我的jQuery:

$("button").live('click', function() { 
    $("#checkin").submit(); 
}); 

$("#checkin").live('submit', function() { 

}); 

當我點擊提交按鈕裏面的提交按鈕,但它沒有提交,當我點擊表單標籤外的按鈕時,爲什麼?我怎樣才能解決這個問題 ?

+2

能告訴你定義的形式外鍵的標記? – 2010-03-20 11:41:29

+0

表單標記中存在拼寫錯誤 - 是複製/粘貼錯誤,還是在您的HTML中? (動作#「bit」 – iblamefish 2010-03-20 11:43:17

回答

0

您選擇所有<button>元素,但是你想選擇一個<input>

由於正常的提交功能運行,它在窗體內部時起作用。

更改選擇到你確實有匹配元素:input[type=submit]

更重要的是,忘了JS,只是結構化你的HTML更好,這樣的提交按鈕的形式裏面。

-2

你可以有一個簡單的超級鏈接表單這樣
<a href="javascript: $('form checkin').submit()"> click to submit </a>
之外,這就是你所需要的

+1

)這並不涉及問題(假設問題與使用HTML5按鈕元素有關),並且被認爲是不正確的做法(由某些人),因爲您將標記與邏輯混合在一起,輕鬆實現使用事件監聽器。 – gpmcadam 2010-03-20 11:58:08

0

如果您使用JavaScript處理表單處理,那麼您需要在buttonform處理代碼中返回false

我能夠使用下面的JavaScript和兩個HTML示例(form元素內部和外部的button)實現相同的結果。

的JavaScript/jQuery的

$("button").live('click', function() { 
     $("#checkin").submit(); 
     return false; 
    }); 

    $("#checkin").live('submit', function(){ 
     alert("Hello world!"); 
     return false; 
    }); 

HTML實施例1

按鈕的形式的內部。

<form id="checkin" name="checkin" id="checkin" action="" method="post"> 
    <input type="text" tabindex="100" class="identifier" name="identifier" id="identifier"> 
    <input type="submit" tabindex="101" value="Submito" class="elsubmito" name="submit"> 
    <button>test</button> 
</form> 

HTML實施例2

形式以外按鈕。

<form id="checkin" name="checkin" id="checkin" action="" method="post"> 
    <input type="text" tabindex="100" class="identifier" name="identifier" id="identifier"> 
    <input type="submit" tabindex="101" value="Submito" class="elsubmito" name="submit"> 

</form> 

<button>test</button> 

正如我所說,這兩個例子都按預期執行。您可能需要仔細檢查您的button聽音代碼,以確保您實際上正在使用button元素。如果您使用與id屬性設置爲button一個元素,那麼你要確保你使用了正確的jQuery選擇:

$("#button").live('click', function() { // ... 
+0

@鮑爾我想要一個頁面重新加載..我不希望它異步提交,我的腳本會在發佈表單時發出警告,但頁面不會轉到操作url – 2010-03-20 16:03:54