Как я заставляю кнопку “отделения” отправить форму ее нахождение в?

У меня есть код ASP.NET, генерирующий HTML моей кнопки для меня отделения использования, чтобы заставить это смотреть и вести себя, как я хочу. Этот вопрос расценивает HTML, произведенный кодом ASP.NET.

Стандартная кнопка легка, просто установите onClick событие отделения для изменения местоположения страницы:

<div name="mybutton" id="mybutton" class="customButton" onClick="javascript:document.location.href='wherever.html';">
Button Text
</div>

Это работает отлично, однако, если я хочу, чтобы кнопка как это отправила форму, в которой она находится, я вообразил бы что-то как ниже:

<form action="whatever.html" method="post">
    <div name="mysubmitbutton" id="mysubmitbutton" class="customButton" onClick="javascript:this.form.submit();">
    Button Text
    </div>
</form>

Однако это не работает :( У кого-либо есть какие-либо сверкающие идеи?

32
задан Deduplicator 1 February 2015 в 16:27
поделиться

5 ответов

onClick="javascript:this.form.submit();">

этот в div onclick не имеет атрибута форма , вы можете попробовать this.parentNode.submit ( ) или document.forms [0] .submit () будет делать

Кроме того, onClick , должно быть onclick , некоторые браузеры этого не делают t работать с onClick

36
ответ дан 27 November 2019 в 20:14
поделиться

Знаете ли вы об элементах

38
ответ дан 27 November 2019 в 20:14
поделиться

Пара моментов, которые следует отметить:

  1. Клиенты, не поддерживающие JavaScript, не смогут отправить вашу форму
  2. Спецификация w3c не допускает вложенных форм в HTML - потенциально вы обнаружите, что теги action и method игнорируются для этой формы в современных браузерах, и что другие элементы управления ASP.NET больше не будут корректно возвращаться (поскольку их форма была закрыта).

Если вы хотите, чтобы это рассматривалось как правильный ASP.NET postback, вы можете вызвать методы, предоставляемые фреймворком, а именно __doPostBack(eventTarget, eventArgument):

<div name="mysubmitbutton" id="mysubmitbutton" class="customButton"
     onclick="javascript:__doPostBack('<%=mysubmitbutton.ClientID %>', 'MyCustomArgument');">
  Button Text
</div>
0
ответ дан 27 November 2019 в 20:14
поделиться

У вас есть тег кнопки

http://www.w3schools.com/tags/tag_button.asp

{{ 1}}
-1
ответ дан 27 November 2019 в 20:14
поделиться

Зачем все усложнять. Просто используйте jQuery!

<script type="text/javascript">
  $(document).ready(function() {
    $('#divID').click(function(){
      $('#formID').submit();
    )};
    $('#submitID').hide();
  )};
</script>

<form name="whatever" method="post" action="somefile.php" id="formID">
  <input type="hidden" name="test" value="somevalue" />
  <input type="submit" name="submit" value="Submit" id="submitID" />
</form>

<div id="divID">Click Me to Submit</div>

Div даже не обязательно должен быть в форме, чтобы отправить ее. Единственное, чего здесь не хватает, это включения jquery.js.

Также есть кнопка Submit, которая скрыта jQuery, поэтому если используется несовместимый браузер, кнопка submit будет отображаться и позволит пользователю отправить форму.

0
ответ дан 27 November 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: