Отправьте имя кнопки, нажав клавишу ввода в IE6. - PullRequest
0 голосов
/ 06 июня 2011

У меня проблема только в IE6.

У меня есть страница с несколькими формами, каждая из которых содержит текстовое поле и кнопку отправки.Поскольку я использую .NET MVC, мне нужно имя кнопки отправки, чтобы выполнить правильное действие.Когда я нажимаю клавишу «Ввод», я выполняю то же действие, что и нажатие в Firefox или Chrome (поле и ButtonName отправлено), но не в IE6, где у меня есть только отправленное поле.

Так как же отправить имя кнопки, когда я нажимаю клавишу «Enter» на IE6?

tl / dr: мне нужно отправить в POST это

Field=foo&Search=

, нажавклавиша «Ввод» в IE6 и не только

Field=foo

Chrome и Firefox хорошо работают, нажимая или нажимая «Ввод»

Спасибо за помощь:)

[РЕДАКТИРОВАТЬ] Добавить пример:

Исходный код

   <!-- 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&#233;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]-->

И это работает.

1 Ответ

1 голос
/ 06 июня 2011

Я думаю, вам не следует полагаться на имя кнопки отправки, а вместо этого создайте <input type="hidden" с name, который вы хотите (например, search).

На самом деле нет разницы междуИмя кнопки отправки и имя любого другого поля ввода, за исключением того, что поле ввода submit на самом деле не является полем, поэтому с этим всегда могут быть артефакты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...