Во-первых, это неправильно:
<input type="submit" name="SubmitButton" value="Reset" />
<input type="submit" name="SubmitButton" value="OK" />
<input type="submit" name="SubmitButton" value="Back" />
Все три из них являются кнопками отправки. Сброс является входом типа = «сброс». Получите это отсортировано. Во-вторых, я успешно реализовал нечто подобное, и это работает на IE6. Попробуйте это:
function keypressHandler(e)
{
if(e.which == 13) {
e.preventDefault(); //stops default action: submitting form
$(this).blur();
$('#SubmitButton').focus().click();//give your submit an ID
}
}
$('#myForm').keypress(keypressHandler);
При фокусировке () кнопка кажется нажатой, когда пользователь нажимает кнопку ввода. Довольно изящно.
Используйте это.
$(function(){
$('input').keydown(function(e){
if (e.keyCode == 13) {
$("input[value='OK']").focus().click();
return false;
}
});
});
Поскольку вы используете jquery, если вы используете плагин горячих клавиш , вы можете сделать такой подход:
$(document).bind('keydown', 'return', function (evt){
$.next("input[value='OK']").trigger("click");
return false;
});
Стандарт HTML, похоже, указывает, что первая кнопка отправки будет принята, если пользователь нажмет клавишу «Ввод».
Нет, использование клавиши ввода не определено, это собственное расширение, которое было добавлено в различных интерпретациях. Вы получите различное поведение в разных браузерах (и это может стать очень опасным, когда вы начнете смешивать различные культурные или пользовательские соглашения относительно порядка опций слева направо / справа налево).
Если в форме есть только 1 кнопка, то все основные браузеры выполняют одно и то же поведение - они отправляют форму, как если бы эта кнопка была нажата (buttonName = buttonValue входит в данные формы). Конечно, это не означает, что обработчик кнопок onclick будет срабатывать - это поведение зависит от браузера.
Когда есть несколько кнопок, это полный отстой. Некоторые браузеры решают , что была нажата первая кнопка (и определение первой может отличаться - большинство используют первую, упомянутую в дереве HTML, в то время как другие пытаются использовать положение экрана) и используют ее в представлении, в то время как другие браузеры (особенно некоторые версии IE) делают одинаково правильное предположение, что не была нажата определенная кнопка , и поэтому не включают buttonName = buttonValue (остальная часть формы отправляется нормально).
Изменить порядок кнопок в источнике, но не визуально (т. Е. Использовать CSS для замены кнопок)?
У вас должна быть только одна кнопка отправки. Кнопка сброса должна иметь вид type = "reset"
, а кнопка возврата, вероятно, должна быть type = "button"
следующим образом:
<input type="reset" name="ResetButton" value="Reset" />
<input type="submit" name="SubmitButton" value="OK" />
<input type="button" name="BackButton" value="Back" />
Затем кнопки Reset и OK будут работать как надо. они должны это делать, и вам нужно будет обрабатывать только нажатие кнопки «Назад» с помощью Javascript.
Изменить: Другой вариант - разместить кнопки «Сброс» и «Назад» в отдельных формах внутри окон iframe. Тогда они будут игнорироваться основной формой и не будут кнопками по умолчанию. Кроме того, это позволит вам указать им на различные действия сервера, если это необходимо, и не будет никакой зависимости от Javascript для действий кнопок.
Illegal characters in path
из-за канала. – Simon Whitehead 9 November 2012 в 02:18Illegal characters in path
из-за канала. – Simon Whitehead 9 November 2012 в 02:18Illegal characters in path
из-за канала. – Simon Whitehead 9 November 2012 в 02:18Illegal characters in path
из-за канала. – Simon Whitehead 9 November 2012 в 02:18Illegal characters in path
из-за канала. – Simon Whitehead 9 November 2012 в 02:18