我在IE6上遇到问题。
我有一个包含多个表单的页面,每个表单都包含一个文本框和一个提交按钮。当我使用.NET MVC时,我需要提交按钮的名称来执行正确的Action。当我点击“Enter”键时,我的行为与Firefox或Chrome上的点击操作相同(发送了Field和ButtonName),但在IE6中没有,我只有发送的字段。
那么当我在IE6上点击“Enter”键时如何发送按钮的名称?
tl / dr: 我需要发送POST这个
Field=foo&Search=
单击IE6上的“Enter”键,而不仅仅是
Field=foo
Chrome和Firefox通过点击或点击“Enter”
运行良好感谢您的帮助:)
[编辑]添加一个例子:
源代码
<!-- gestion type operation -->
<fieldset>
<legend>Interface de gestion des Types d'Opérations</legend>
<% Html.BeginForm("TypeOperation", "Administration", FormMethod.Post); %>
<%= Html.EditorFor(m => m.TypeOperationField)%>
<input type="submit" id="RechercheTypeOperation" name="RechercheTypeOperation" value=""
class="loupe" />
<% Html.RenderPartial("ListeTypeOperation", Model); %>
<% Html.EndForm(); %>
</fieldset>
<!-- gestion type operation -->
非常简单,每次我需要页面中的搜索文本框+提交按钮时,都会重复此表单结构。 在生成代码时,表单可以很好地打开和关闭。
生成代码
<!-- gestion type operation -->
<fieldset>
<legend>Interface de gestion des Types d'Opérations</legend>
<form action="/Administration/TypeOperation" id="form3"
method="post">
<input class="text-box single-line" id="TypeOperationField"
name="TypeOperationField" type="text" value="" />
<input type="submit" id="RechercheTypeOperation"
name="RechercheTypeOperation" value="" class="loupe" />
<div>
<table class="grid">
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
</div>
</form>
<script type="text/javascript">//
<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({"Fields":[],"FormId":"form3","ReplaceValidationSummary":false});
//]]>
</script>
</fieldset>
<!-- gestion type operation -->
[编辑2]我在表单中添加了这一行
<!--[if IE]><input type="text" style="display: none;" name="RechercheTypeOperation" value="" disabled="disabled" size="1" /><![endif]-->
它正在发挥作用。
答案 0 :(得分:1)
我认为,您不应该依赖提交按钮的名称,而是使用您想要的<input type="hidden"
创建name
(例如search
)。
提交按钮名称和任何其他输入字段的名称之间没有区别,除了submit
输入字段实际上不是字段,因此总会出现一些工件。