2010-03-13 1 views
19

имеет 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> 

что weired мне в этом коде является то, что при нажатии на кнопку в форме, все, что я хочу, чтобы выполнить некоторые яваскрипта действия, но eventaully это приводит к тому, форма должны быть представлены также, даже когда я не готов сделать это.
Итак - это правда? и если да, то как я могу выполнить какой-либо скрипт java-скрипта внутри a, но предотвратить автоматическую отправку формы?

+0

Это не просто проблема с IE. Это происходит и в Chrome. Как ответ @ Pekka, добавление type = "button" решило это для меня. –

ответ

33

Согласно W3schools, submit это новое действие по умолчанию для button элементов в IE 8:

Всегда указывайте тип атрибута для кнопки. Тип по умолчанию для Internet Explorer - «кнопка», в то время как в других браузерах (и в спецификации W3C) это «отправить».

Так что, если вы не указали тип, форма будет представлена ​​во всех браузерах, но не IE 7.

это должно работать:

<button type="button" onclick="dosomething()">Press</button> 
+1

Возможно, эта ссылка является релевантной и ответит на мой вопрос: http://stackoverflow.com/questions/932653/how-to-prevent-buttons-from-submitting-forms – Spiderman

+0

гладко он действительно работал. Только для добавления типа = "button". Мне даже не пришлось возвращать ложь в конце команды. Это не произошло со мной в предыдущей версии IE (IE7). – Spiderman

+0

lol Пекка, я думаю, вы читаете цитату неправильно. W3Schools предполагает, что в IE тип по умолчанию - 'button', что неверно для IE8. Это означает, что во всех браузерах, кроме IE7 и ниже, кнопка без типа будет отправлять форму. –

2

Из документов IE для button element:

Internet Explorer 8 и более поздние версии. Значение по умолчанию этого атрибута зависит от текущего режима совместимости документов. В режиме IE8 значение по умолчанию - submit. В других режимах совместимости и более ранних версиях Internet Explorer значением по умолчанию является кнопка.

Стандарт предлагает тип по умолчанию submit, предыдущие версии IE неправильно по умолчанию для button

Смежные вопросы