Фокус на TextBox запускает PageLoad с использованием C # .net - PullRequest
3 голосов
/ 03 июня 2011

У меня есть функция, которая устанавливает фокус на следующее поле с помощью 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

1 Ответ

0 голосов
/ 03 июня 2011

вам нужно иметь <form onsubmit="return false;"> для вашей формы, как указано здесь: Как предотвратить нажатие клавиши ВВОД для отправки веб-формы?

...