Как работает <ENTER>на веб-странице? - PullRequest
4 голосов
/ 17 мая 2011

У меня есть веб-страница с мастером. Мастер содержит

search1Button с PostBackUrl="~/Search.aspx"

Дочерняя страница содержит

search2Button с onclick="btnSearch_Click"

Когда пользователь нажимает <enter>, будет выполняться * search1Button. Когда ничего не активно, я вижу, как search1Button можно рассматривать как значение по умолчанию. Но когда в активном текстовом поле написано

search2TextBox

В случае внезапного выполнения search1Button вместо search2Button все может немного запутаться.

A. Как страница решает, что выполняется?
B. Это как-то связано с Forms? Если да, ограничивает ли меня только одна форма способностью контролировать ситуацию (я не могу добавить больше форм из-за серьезных проблем, с которыми я столкнулся и обсуждал SO с вложенными формами)?

Ответы [ 2 ]

3 голосов
/ 17 мая 2011

Вы можете использовать атрибут DefaultButton формы.

1 голос
/ 17 мая 2011

Вы можете сделать это с помощью JavaScript, вот как вы можете это сделать ..

FirstTextBox.Attributes.Add("onkeypress", "SetDefaultButton(this,'" + SearchButton1.ClientID + "')");
SecondTextBox.Attributes.Add("onkeypress", "SetDefaultButton(this,'" + SearchButton2.ClientID + "')");

function SetDefaultButton(objTextBox,objBtnID)
{
    if(window.event.keyCode==13)
    {
        document.getElementById(objBtnID).focus();
        document.getElementById(objBtnID).click();
    }
}
</script>
...