2013-10-03 50 views
-2

我有兩個HTML表單,一個相當長的一個(他們訂購產品的用戶提交的信息)在其內側有一個簡短的二次形式(其中用戶可以輸入+應用折扣代碼通過AJAX)。然而,包括內部形式 - 具有正確的開放和關閉括號 - 似乎打破了外部表單的提交按鈕(不會產生javascript錯誤,點擊時不會執行任何操作)。嵌套形式打破外在形式提交按鈕

爲什麼會發生這種情況,我該如何解決?

+0

如果有幫助,內部表單提交按鈕的類型是「submit」,而封閉窗體的按鈕實際上是「image」類型的 –

回答

0

你並不需要包裝內「形式」的形式標記,如果這就是你在做什麼。該解決方案僅僅是綁定的折扣代碼,運行您的AJAX JavaScript函數提交按鈕,即

HTML

<input type="text" placeholder="Discount Code" name="discountCode"> 
<a href="javascript:applyDiscount()" class="btn btn-primary">Apply</a> 

的Javascript

function applyDiscount() { 
    discountCode = $('input[name="discountCode"]').val(); 
    $.ajax(...); 
} 
+0

謝謝,這樣做!猜猜有2個表單標籤衝突? –

+0

@AaronMarks是的,當表單嵌套表單和/或多個'submit'輸入時,有些瀏覽器特別不喜歡它。最簡單的解決方法是使用JS來執行這個答案所描述的內部表單。 – Ennui

+1

@AaronMarks如果你檢查https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form,那麼你會看到一個表單元素不能包含另一個表單元素根據HTML5(http:///www.w3.org/TR/html5/forms.html#the-form-element)或HTML4(http://www.w3.org/TR/html401/interact/forms.html#h-17.3)標準。當然,沒有任何東西可以阻止你擁有相鄰的表單,並且可以使用CSS或JavaScript來直觀地定位另一個表單。 – pwdst