我正在尝试转换以下内容,只需单击按钮即可执行,而不是在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>
答案 0 :(得分: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));
答案 1 :(得分:0)
我认为您不想使用按钮...您想检查每个键类型...当您释放键盘按钮时引发的keyup
事件,如果我理解您的问题您希望在单击按钮时引发事件,为此,您可以使用此处所述的keydown
事件:http://api.jquery.com/keydown/
$('#message').keydown(function(e) {
CountLeft(jQuery(this), 75);
});