Это хороший обходной путь для отправки кнопки ввода в текстовом поле? - PullRequest
0 голосов
/ 13 декабря 2011

Итак, у меня есть страница, на ней было несколько текстовых полей, кнопок ссылок и кнопок. В настоящее время пользователь нажимает кнопку «Изменить», которая позволяет ему вводить данные в эту строку через текстовые поля. Тем не менее, после нажатия Enter, событие для одной из кнопок сработало ... это совсем не желательно. Видимо, это встроенное поведение по умолчанию?

Можно ли связать каждое текстовое поле так, чтобы нажатие клавиши ввода действовало на определенную назначенную кнопку или кнопку ссылки, при этом текстовые поля не находились в отдельных формах?

Если это невозможно, я попытаюсь создать кнопку и сделать ее кнопкой формы по умолчанию, но отключить и скрыть ее, чтобы при нажатии клавиши ввода ничего не отображалось.

Спасибо!

Ответы [ 3 ]

1 голос
/ 13 декабря 2011

Вы можете поместить их в отдельные панели и использовать атрибут defaultbutton, чтобы сообщить панели, какую кнопку использовать при нажатии Enter.

1 голос
/ 13 декабря 2011

Вы можете установить для свойства UseSubmitBehavior значение false в элементе управления Button. Это приведет к тому, что кнопка будет отображаться как тег <input type="button" /> вместо тега <input type="submit" />. В результате нажатие клавиши «Ввод» не приведет к нажатию кнопки, если только кнопка не имеет фокуса.

<asp:Button runat="server" UseSubmitBehavior="false" ... />
1 голос
/ 13 декабря 2011

Вы можете переопределить событие KeyPress для каждого текстового поля, чтобы поймать клавишу ввода, а затем запустить код для соответствующей кнопки.

if(e.KeyChar == '\n') 
   // execute button code
...