2013-06-14 6 views
2

Я надеюсь, что это будет легко, но я посмотрел и не могу найти решение, которое будет работать для меня. У меня есть страница aspx с двумя пользовательскими элементами управления. Один из них представляет собой пользовательский элемент управления с текстовым полем автозаполнения с автоподстройкой, которое я хочу, чтобы клавиша «Ввод» вызывала обратную передачу.Остановить Введите ключ от кнопки активации стрелки

У меня есть кнопка в другом элементе управления на странице, что onClick делает что-то еще. Когда я вставляю текст в Auto Complete и нажимаю enter, загорается кнопка onClick для кнопки. Есть ли способ, чтобы ключ ввода не вызывал onClick.

Я пробовал некоторые javascript, чтобы отключить нажатие клавиши ввода, но это ломает мое текстовое поле.

Какие у меня варианты.

EDIT 1

Вот некоторые разметки, у меня есть

<uc:CompanyAC runat="server" ID="ac" /> 
<cc2:GenericGridView OnHtmlDataCellPrepared="HtmlDataCellPrepared" 
KeyFieldName="CompanyID" ID="gridCompanies" DataSourceID="ManageCompaniesObjectDataSource" runat="server" 
AutoGenerateColumns="False" /> 

управления CompanyAC имеет текстовое поле с некоторыми JQuery, что делает автозаполнение WS вызова (нет необходимости, чтобы показать, что

<asp:TextBox ID="searchbox" runat="server" Width="400px" /> 

Элемент управления GenericGridView содержит кнопку

<asp:Button runat="server" ID="Button" Text="New" AllowFocus="false" OnClick="Button_Click" /> 

Так что происходит, когда клавиша ввода нажата, когда фокус находится в текстовом поле, кнопка, находящаяся в другом элементе управления, запускает его onclick. Я не хочу, чтобы это произошло, но я все еще хочу, чтобы постбэк произойти

+2

пожалуйста, вы можете разместите часть своей разметки, чтобы мы могли видеть, что у вас происходит? – Jay

ответ

0

Если вы используете JQuery, вы можете попробовать это:

$('input').on('keypress', function(e){ 
    // Attempt form submit (after event function exits). 
    var f = $(this).parents('form'); 
    setTimeout(function(){f.submit();}, 1); 

    // Return false to prevent form submit when enter key is pressed. 
    return !((window.event) ? window.event.keyCode : e.which)==13); 
}); 
+0

Но я хочу, чтобы форма была отправлена, просто не запускайте onclick –

+0

Если это остановит onclick, вы можете установить таймер для отправки формы. Это довольно взломать, но это сработает. Добавим к примеру. – prothid

1

попробовать этот

$('input').keypress(function(event){ 
     if(event.keyCode==13) 
     { 
      event.preventDefault(); 

      } 
     }) 
Смежные вопросы