2012-10-09 19 views
1

我試圖轉換下面的按鈕,而不是在keyup事件上執行。這是一個文本限制器。用戶輸入文字,我想通過單擊按鈕將文字限制(修剪)爲75個字符。執行一個按鈕上的腳本,而不是在鍵盤上

<p>Type something in the textbox below: </p> 
<textarea id="message" name="message" rows="4" cols="30"></textarea> 
<div class="charLeft" id="countCharacter">75 characters left</div> 


<script> 
    function CountLeft(field, max) { 
     if (field.val().length > max) 
      field.val(field.val().substring(0, max)); 
     else 
      jQuery(".charLeft").html((max - field.val().length) + " characters left"); 
    } 

    jQuery("#message").keyup(

    function(event) { 
     CountLeft(jQuery(this), 75); // you can increase or derease the number  depend on your need. 
    }); 
</script> 
+1

您是否嘗試過'keydown'事件? – udidu

+0

按鈕在哪裏?只需將選擇器從'#message'更改爲您的按鈕的選擇器,並將'keyup'更改爲'click' ...我錯過了什麼?你是否從某個地方獲取了此代碼,並希望我們爲您更改它? – MrOBrian

回答

1

假設你已經在你的HTML有一個按鈕的地方(這不會出現在你的問題),如:

<div id="your-button">Click Me</div> 

,那麼這將達到的效果我覺得希望。當用戶點擊your-button時,現在輸入只有被修剪。

$('#your-button').click(function() { 
    CountLeft($('#message'),75); 
}); 

如果你想保持原來的行爲太(這是一個好主意,IMO),你可以這樣做:

function CheckLength(input_selector,length) { 
    return function() { 
     CountLeft($(input_selector),length); 
    } 
} 

var input_selector = '#message'; 
var input_length = 75; 
$('#your-button').click(CheckLength(input_selector,input_length)); 
$('#message').keyup(CheckLength(input_selector,input_length)); 
0

我想你不想使用一個按鈕.. 。你想檢查每個鍵的類型......當你釋放鍵盤按鈕時引發的keyup事件,如果我正確理解你想要的事件,當你點擊按鈕時引發事件,爲此,你可以使用這裏描述的​​事件:http://api.jquery.com/keydown/

$('#message').keydown(function(e) { 
    CountLeft(jQuery(this), 75); 
});