Форма HTML javascript отправляется при нажатии кнопки ввода изображения

У меня есть форма, содержащая это единственное поле ввода, которое представляет собой не что иное, как кнопку для печати текущей веб-страницы:

<div align="center">
<input type="image" src="../Images/print.jpg" value="Print" onclick="printpage();" /></div>
</div>

После печати страница повторно отправляет себя (самой себе). Почему это происходит и можно ли это остановить?

Если я просто изменю тип на «ввод», этот код не будет повторно отправляться после печати:

<div align="center">
<input type="input" src="../Images/print.jpg" value="Print" onclick="printpage();" /></div>
</div>

К сожалению, наши соглашения о стиле требуют, чтобы я использовал это изображение кнопки, а не стандартную кнопку ввода.


person DreamU    schedule 01.04.2010    source источник
comment
Если кнопка с изображением не имеет функциональности без Javascript, запишите ее с помощью Javascript в документ.   -  person fuxia    schedule 01.04.2010


Ответы (3)


Измените обработчик onclick на onclick="printpage(); return false;", чтобы кнопка не выполняла ничего, кроме запуска JavaScript.

person Aric TenEyck    schedule 01.04.2010
comment
Возможно, стоит упомянуть, что причина, которую вам нужно сделать, заключается в том, что элемент ввода типа изображение по умолчанию является кнопкой отправить и, следовательно, отправляет форму при нажатии. - person Syntactic; 01.04.2010

добавить «вернуть ложь»; к вашему событию onClick:

onclick="printpage();return false;"
person Ray    schedule 01.04.2010

Вы пробовали добавить

вернуть ложь;

в конце вашего кода для этого

<input type="input" src="../Images/print.jpg" value="Print" onclick="printpage();return false;" /></div>
person Justin Gregoire    schedule 01.04.2010