问问题
847 次
4 回答
2
您的代码中有大量错误。由于您使用的是 jsFiddle,我建议您使用 JSHint 函数并在下次使用它们。
为了让它按照您的建议运行,我的最终 jQuery 是:
var $j = jQuery.noConflict();
$j("#textArea").on("keyup keydown keypress", function(){ //captures all key input, not always necessary
var count = $j(this); //you were missing 'var' and were using $ instead of $j
if ($j(this).val().length <= 30 ) {
$j("#charNum").text(30 - count.val().length); //you had an unmatched bracket here
} else { //could not compare bracketed values as an else, use else if, or no if at all
$j("#charNum").text("submit is now enabled");
$j("#submit").removeAttr('disabled');
} //your closing bracket was back to front
});
编辑:不要忘记,如果要限制文本输入,可以使用maxlength
textarea 的属性,设置为要限制的字符数。这适用于所有现代浏览器,据我回忆,回到 IE 7 或 8,我忘记了哪个。
于 2013-08-13T08:14:31.360 回答
0
尝试这个:
var $j = jQuery.noConflict();
$j(function(){
$j("#textArea").keyup(function(){
count = $j(this);
$j("#charNum").text(30 - count.val().length);
if (30-count.val().length == 0) {
$j("#charNum").text("submit is now enabled");
$j("#submit").removeAttr('disabled');
}
});
});
于 2013-08-13T08:21:22.483 回答
0
$("#textArea").on('keyup', function(){
var th = $(this), val = $.trim(th.val()), chars = val.length;
$j("#charNum").html(chars + ' of 30 entered');
if(chars === 30){
$("#submit").attr('enabled', true);
}
});
于 2013-08-13T08:04:26.533 回答
0
尝试这个
你可以使用jquery.limit插件
<script type="text/javascript" src="https://jquery-limit.googlecode.com/files/jquery.limit-1.2.source.js"></script>
<textarea name="value" id="value" style="width: 100%; height: 150px"></textarea>
<span id="charsLeft"></span> Characters left.
<script type="text/javascript">
$('#value').limit('30', '#charsLeft');
</script>
于 2013-08-13T08:04:39.837 回答