2014-03-05 80 views
0

我有一個簡單的問題(希望),但我無法找到一個明確的解決方案。jQuery鍵盤應該應該觸發輸入鍵

我有一個數據表,它有一個文本輸入字段。用戶在文本字段中輸入文本,然後點擊回車鍵。這會自動從輸入的文本中過濾掉。

我一直希望使用onkeyup事件觸發,所以當用戶在文本字段中輸入一個值時,數據表會自動更新,而不是用戶必須按Enter鍵。

<input type="text" name="input" class="filter" id="input" onkeyup="functionName(this)" value=""> 

<script> 
function functionName(e) { 
alert(e.value); 
} 
</script> 

此代碼有效,所以當我輸入一個值時,會彈出一個提示,顯示輸入的值。

是否有可能我可以更改警報,提交或複製「輸入」鍵的功能。

從試圖找到一個解決方案,它更加困難,因爲它不是一個窗體,因爲它使用ajax,所以.submit方法將無法正常工作。

我也希望像這樣的解決方案可以工作

<script> 

var e = jQuery.Event("keyup"); 
e.which = 13; // Enter 
$("#input").trigger(e); 

</script> 

我知道有很多類似的話題,我也看了,但他們都不是適合我的解決方案。 感謝您的幫助。

//

編輯

//

基礎上KEYUP問題,我怎麼能過濾後重新調整光標。這是否與過濾同時完成?

 $obj.find('input.filter').on('keyup',function(e){ 
       e.preventDefault(); 
       ajax($obj); 
     }); 

回答

1

你使用jQuery,所以沒有真正需要使用onclick="",其次儘量避免使用保留名稱的標識&類(例如,#input)。最後,您可以模仿表單提交通過在每個.keyup事件中使用$.post()象下面這樣:

<input type="text" name="input" class="filter" id="searchinput" value="" /> 

<script> 
    $(document).ready(function() { 
     $(document).on('keyup', '.filter', function(event) { 
      $.post('yourapi.php', { input: $(this).val() }, function(data) { 
       //Refocus the <input /> 
       $('#searchinput').focus(); 
      }); 

     }); 
    }); 
</script> 
+0

嗯,我不懷疑這個作品,但它不適合我。也許yourapi.php是原因。我非常接近onclick的方式,你知道使用它的解決方案嗎? –

+0

@ user2661760'yourapi.php'只是一個示例URL,是與'input'相同頁面上的數據庫腳本? – MackieeE

+0

是的,我猜想,但沒有反應,當我正確地鏈接它。如果我沒有正確鏈接,我在控制檯中出現錯誤。 Keyup上沒有任何事情發生,但仍然當我打回來它工作:/ –

0
$(document).ready(function(){ 


$("input").keyup(function(event) 
{ 
var keycode = (event.keyCode ? event.keyCode : event.which); 
if(keycode != '13') 
{ 
var e = jQuery.Event("keyup"); 
e.which = 13; // Enter 
$("input").trigger(e); 

} 
    else {alert("Enter triggered"); 
     } 
}); 
}); 

DEMOJSFiddle

+1

這是不是檢查回車鍵是否被按下?我不需要這樣。 –

+0

對不起,現在修改 –

+0

另一個問題,因爲我說它不是一種形式,它是一個數據表,因此沒有

標籤提交 –

0

正如你可以在jQuery代碼了。那麼你可以用這個代碼去......

$(document).ready(function(){ 
     $(".filter").keyup(function(){ 
       var text_input_text = $(this).val(); 
       //here is your ajax post request 
       $.post('url for post', {filter_text: text_input_text}, function(response){ 
         console.log(response); 
       }); 
     }); 
}); 

這裏我們介紹了keyup事件和ajax文章。 希望這會幫助你。