Кнопка «Отправить» во вложенной форме отправляет внешнюю форму в IE7 - PullRequest
2 голосов
/ 21 ноября 2011

На моей странице Home.aspx есть следующий код:

  <form id="frmJump" method="post" action="Views/ViewsHome.aspx">
    <input name="JumpProject" /><input type="submit" value="Go" />
  </form>

Однако, когда я нажимаю кнопку «Перейти», страница отправляется обратно на Home.aspx, а не на ViewsHome.aspx.

Я даже попытался добавить какой-нибудь скрипт для принудительной отправки формы:

<input name="JumpProject" onkeypress="if(event.keyCode == 13) { this.form.submit(); return false; }" />

Но, несмотря на это, даже если я нажму ENTER, страница Home.aspx перезагрузится.

Единственное, что я могу видеть, что это может мешать, это то, что эта форма на самом деле является дочерней формой основной формы POSTBACK, которую ASP.NET внедряет в страницу.

Я уверен, что есть какая-то глупость.отсутствует, и в этом сообщении будет немедленно получено 800 отрицательных голосов, изгнавших меня обратно в сферу n00b, но, возможно, в последнее время я не выспался, и мне не хватает чего-то глупого.

Это на IE7 и ASP.NET4.0 бэкэндУ меня также есть библиотеки jQuery, загруженные на странице, в случае, если jQuery может как-то улучшить это.Спасибо!

Ответы [ 3 ]

4 голосов
/ 21 ноября 2011

Самое простое объяснение состоит в том, что формы не могут быть вложенными.

Возможно, вам следует пересмотреть логику отправки, чтобы надлежащим образом обрабатывать сценарий на стороне сервера (с помощью одной формы обратной передачи.) В противном случае вам может потребоваться рассмотреть маршрут, который отличается от стандартной модели обратной передачи ASP.NET Webforms.

2 голосов
/ 21 ноября 2011

Вы не можете вкладывать формы в HTML, поэтому браузер будет игнорировать внутренний тег формы.Когда вы отправляете форму, она отправляет единственную форму, которая находится на странице.

Если вам нужно опубликовать форму на другой странице, вы можете использовать Javascript, чтобы либо изменить текущую форму перед отправкой (нажмите на кнопку) или создайте новый элемент формы, добавьте его на страницу и отправьте вместо этого.

1 голос
/ 21 ноября 2011

Вам не разрешено вложить формы в HTML.В любом случае, это не поддерживается большинством браузеров.

Что вы можете сделать вместо этого, поскольку вы страдаете из-за веб-форм .net, так это просто иметь событие Button_Click в C #, соответствующее нажатой кнопке подтверждения,и сделайте так, чтобы проект запрыгнул оттуда.

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