2010-10-14 64 views
0

這就是我想要發生的事情。當用戶點擊'輸入'時,'SearchForItems()'應該觸發。正在發生的是另一個控件,當頁面中的「其他按鈕」被獲取時,任何其他元素都會在onkeyup之後或之後被選中。爲什麼我的按鈕失去焦點?

我不得不強調頁面加載時的「搜索按鈕」,但在此之後,任何時候按下「其他按鈕」都會被觸發。 '其他按鈕'沒有分配標籤索引,並且是頁面默認按鈕

我不知道我是否做得很好解釋這一點。基本上我想知道爲什麼焦點正在轉移,以及如何強制'搜索按鈕'觸發任何時候輸入被按下。

這是我的網頁上一個條目,其中我試圖迫使「搜索按鈕」,以觸發:

<td><input type="text" onkeydown="CheckForEnterKey(event)" id="AcceptedDate1" maxlength="7" style="width:121px;" value="<%=DateTime.Now.AddMonths(-3).ToString("MM/yyyy")%>"/>&nbsp;</td> 

這是我的jQuery的文件,其中我也

的一部分
$('#AcceptedDate1').keypress(function(e) { if (e.keyCode == 13 || e.which == 13) $('#SearchAcceptedLotsButton').click(); }); 

CheckForEnterKey功能

function CheckForEnterKey(e) 
    { 
     var keycode; 
     if(e.which) 
     { 
      keycode = e.which; 
     } 
     else 
     { 
      keycode = e.keyCode; 
     } 

     if(keycode == 13) 
     { 
      $('#SearchAcceptedLotsButton').click();//tried SearchForItems() also 
     } 
    } 

編輯:

我剛剛添加到我的網頁,它似乎工作,我把這一切都加在一起的主要股利。我現在需要做的是確定輸入按鈕的位置,以便每次在我的頁面的主要部分按下時都會取消輸入。任何想法,我的網頁上有很多元素?

function checkKey(e) 
    { 
     if(e.keyCode == 13 || e.which == 13) 
     { 
      e.returnValue = false; 
      e.cancel = true; 
     } 
    } 

回答

0

這是我解決了這個問題:

我添加了這個功能..

function checkKey(e) 
    { 
     if(e.keyCode == 13 || e.which == 13) 
     { 
      e.returnValue = false; 
      e.cancel = true; 
      SearchAcceptedLots(); 
     } 
    } 

在頁面上包含的一切最頂部的div我加了這一點:

<div id="ItemPanel" onkeydown="checkKey(event)"> 

這種捕捉每輸入一個表格內按下,取消默認的按鈕行爲並調用所需的功能。

0

我不知道爲什麼你有問題。但我可以給你我的onKeyDown代碼按enter:

if (event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) { #DO JS HERE # }} 

於是我就用這樣的:

<input type="text" onKeyDown="if (event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) { alert('You pressed enter!'); }}"> 
0

在每次按下回車鍵的id="SearchAcceptedLotsButton"可以觸發點擊如下上面的代碼:

if(keycode == 13) 
    { 
     $('#SearchAcceptedLotsButton').trigger('click'); 
    } 
+0

我試過這個,謝謝。由於其他按鈕是頁面的默認按鈕,因此我需要覆蓋該行爲。 – Avien 2010-10-14 17:36:46