У меня есть код 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>
Однако это не работает :( У кого-либо есть какие-либо сверкающие идеи?
onClick="javascript:this.form.submit();">
этот
в div onclick не имеет атрибута форма
, вы можете попробовать this.parentNode.submit ( )
или document.forms [0] .submit ()
будет делать
Кроме того, onClick
, должно быть onclick
, некоторые браузеры этого не делают t работать с onClick
Знаете ли вы об элементах Использование Есть одно (не) предостережение:
? Элементы
могут быть стилизованы так же, как элементы
type = "submit"
, поэтому они отправляют форму без javascript:
<form action="whatever.html" method="post">
<button name="mysubmitbutton" id="mysubmitbutton" type="submit" class="customButton">
Button Text
</button>
</form>
также является более семантическим, тогда как
становится кнопкой "по умолчанию", что означает, что клавиша возврата автоматически отправляет форма. Вы не можете сделать это с помощью
.
может иметь только фразовое содержание , хотя вряд ли кому-то понадобится какой-либо другой тип контента при использовании элемента для отправки. Форма.
Пара моментов, которые следует отметить:
Если вы хотите, чтобы это рассматривалось как правильный ASP.NET postback, вы можете вызвать методы, предоставляемые фреймворком, а именно __doPostBack(eventTarget, eventArgument)
:
<div name="mysubmitbutton" id="mysubmitbutton" class="customButton"
onclick="javascript:__doPostBack('<%=mysubmitbutton.ClientID %>', 'MyCustomArgument');">
Button Text
</div>
Зачем все усложнять. Просто используйте 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 будет отображаться и позволит пользователю отправить форму.