У меня есть функция, которая устанавливает фокус на следующее поле с помощью JS в форме, когда нажимаю ввод:
function pressEnter(obj, e) {
var key = e.keyCode ? e.keyCode : e.which;
if (key === 13) {
var total = document.forms[0].elements.length;
for (var i = 0; i < total; i++) {
if (obj.id == document.forms[0].elements[i].id) {
index = i + 1;
while ((document.forms[0].elements[index].type == "hidden" || document.forms[0].elements[index].nodeName == "FIELDSET" || document.forms[0].elements[index].disabled == true)) {
index++;
if (document.forms[0].elements[index] == null)
return;
}
$('#' + document.forms[0].elements[index].id).focus();
break;
}
}
}
}
В теге BODY у меня есть следующий скрипт: onkeypress = "var key = event.keyCode? event.keyCode: e.which; return (key! = 13); ", чтобы избежать публикации при нажатии [Enter]
Работать нормально, если я установил [TextBox1 autoPostBack = false] [TextBox2 autoPostBack = false].Введите TextBox1, [введите], TextBox2 получает фокус и вызывает событие onkeypress тела.
Хорошо.
Здесь возникает проблема
Если я установил [TextBox1 autoPostBack= false] [TextBox2 autoPostBack = true] когда textBox2 получает фокус, он обновляет страницу, выполняет сообщение и не вызывает событие onkeypress тела.Ничего не было набрано в TextBox2.Я хотел бы, чтобы TextBox с AutoPostBack = true не создавал сообщение и не обновлял экран до тех пор, пока значение не будет введено и не запустит onBlur.
Подробно, если нажать TAB, эта проблема не возникает, простокогда программно установите фокус с помощью JS.
Если кто-то может объяснить мне, почему, я буду очень благодарен.
Tarsis - Varois