2013-10-03 51 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