我已经查看了几十个类似的问题,但大多数解决方案都实现了隐藏的输入或广泛的javascript,但没有人回答为什么一种输入有效,另一种输入无效。
此问题特定于Internet Explorer,适用于Chrome和FF。
这是我创建表单的代码:
@foreach (hello.Data.Models.Button btn in Model.Content.Buttons.OrderBy(b => b.Action))
{
if (btn.Action == "Close Message" && (Model.SurveyAuditExists == true || Model.SurveyContent == null))
{
<li class="response-button-item">
<input type="submit" class="response-button" name="@btn.Text" id="@btn.Text" onclick="submitForm.submit();" value="@hello.Biz.Helpers.ExtensionMethods.TrimString(btn.Text, new char[] { '&' })" />
</li>
}
以下是生成HTML的示例:
<form id="submitForm" action="/Go/Here/39354" method="post">
<ul id="response-button-list">
<li class="response-button-item">
<input name="&Agree" class="response-button" id="&Agree" onclick="submitForm.submit();" type="submit" value="Agree">
</li>
<li class="response-button-item">
<input name="&Disagree" class="response-button" id="&Disagree" onclick="submitForm.submit();" type="submit" value="Disagree">
</li>
</ul>
因此,当我点击Chrome / FF上的同意或不同意时,它会返回用户是否同意或不同意但在IE中它返回空白并导致错误,因为我的控制器中FormCollection和AllKeys为空。
将输入类型更改为复选框并单击该框,可以在IE中正确提交。
我还没有在页面中嵌套表单。
任何帮助将不胜感激!