Кнопку в форме, потому что она будет отправлена автоматически
В последнее время изменилась версия HTML (например, от ie7 до IE8?)
Я замечаю следующее изменение, которое вызывает у меня некоторый troulbe -
У меня есть код, похожий на этот:
<form method="POST" action="/admin/modify">
<input type="text"/>
<button onclick="dosomething()">Press</button>
</form>
<script type="text/javascript">
function doSomething(){
// doesn't matter what actually
}
</script>
Что мне нужно в этом коде, так это то, что, нажимая кнопку внутри формы, все, что я хочу, - это выполнить какое-то действие javascript, но eventaully также вызывает отправку формы, даже если я не готов это сделать,
Итак - это правда? и если да, то как я могу выполнить какой-либо java script actoin внутри a, но предотвратить автоматическую отправку формы?
Ответы
Ответ 1
Согласно W3schools, submit
- это новое действие по умолчанию для элементов button
в IE 8:
Всегда указывайте атрибут типа для кнопки. Тип по умолчанию для Internet Explorer - "button", тогда как в других браузерах (и в спецификации W3C) он "отправляется".
Поэтому, если вы не укажете тип, форма будет отправлена во всех браузерах, но не в IE 7.
это должно работать:
<button type="button" onclick="dosomething()">Press</button>
Ответ 2
В документах IE для элемента :
Internet Explorer 8 и более поздних версий. Значение по умолчанию этого атрибута зависит от текущего режима совместимости документов. В режиме IE8 значение по умолчанию - submit. В других режимах совместимости и более ранних версиях Internet Explorer значением по умолчанию является кнопка.
Стандарт предполагает, что тип по умолчанию submit
, предыдущие версии IE некорректно по умолчанию были button