Это более целесообразно подходить к этой проблеме с менталитетом, что форма будет иметь действие по умолчанию привязаны к одной кнопки отправки , а затем альтернативное действие, связанное с простой кнопкой. Разница здесь в том, что в зависимости от того, какой из них попадает под submit, будет использоваться тот, который используется, когда пользователь отправляет форму, нажимая клавишу enter, а другой будет запущен только тогда, когда пользователь явно нажимает кнопку.
Во всяком случае, с этим в виду, это должно сделать это:
<form id='myform' action='jquery.php' method='GET'>
<input type='submit' id='btn1' value='Normal Submit'>
<input type='button' id='btn2' value='New Window'>
</form>
С этим JavaScript:
var form = document.getElementById('myform');
form.onsubmit = function() {
form.target = '_self';
};
document.getElementById('btn2').onclick = function() {
form.target = '_blank';
form.submit();
}
подходы, которые связывают код события нажатия кнопки отправки не будет работать на IE.
Там есть проблема юзабилити здесь: Что происходит, когда я нажимаю 'enter' вместо clickin g a кнопка? Скорее всего, вам придется отменить событие отправки формы. –
Форма должна иметь одну кнопку, которая является «по умолчанию», если форма отправлена, но ни одна из кнопок не была активирована. Значение по умолчанию должно выбираться с умом. Обратите внимание, что «hit enter» - это только расширение для браузера, на которое нельзя положиться, тогда как все браузеры могут активировать определенную кнопку. – thomasrutter
Хорошая точка спасибо – Stoob