如何使用javascript检测textarea上的更改事件?
我正在尝试检测您输入的剩余字符数.
我尝试使用onchange事件,但这似乎只在焦点出现时启动.
这是一个例子:
$(function() {
$('#test').change(function() {
$('#length').html($('#test').val().length)
})
})Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id=test maxlength=10></textarea>
length = <span id=length>0</span>Run Code Online (Sandbox Code Playgroud)
用线条填充textarea(一行一个字符),直到浏览器允许.完成后,保留textarea,js代码也将计算字符.
所以在我的情况下,我可以在chrome阻止我之前只输入7个字符(包括空格).虽然maxlength属性的值是10:

我正在尝试做一个简单的textarea,"剩下这么多字符"以及验证.当我使用ng-maxlength来验证我的表单时,只要长度达到最大长度,它就会重置我的charcount.这是plunkr 任何解决方法?
<body ng-controller="MainCtrl">
<div ng-form="noteForm">
<textarea ng-maxlength="15" ng-model="result"></textarea>
<p>{{15 - result.length}} chars remaining</p>
<button ng-disabled="!noteForm.$valid">Submit</button>
</div>
</body>
Run Code Online (Sandbox Code Playgroud) 我试图限制在textarea中输入的字符数,如下所示:
<div>
@Html.TextAreaFor(x => x.StudentName, new { @maxlength = "1000" })
</div>
Run Code Online (Sandbox Code Playgroud)
这在Firefox和Chrome中运行良好,但maxlength属性在IE中不起作用.我怎么做??
HTML文本输入具有称为"maxlength"的属性,由浏览器实现,如果设置在一定数量的字符之后阻止用户输入.
另一方面,HTML textarea元素没有此属性.我的目标是模拟HTML textarea上maxlength的行为.要求:
据了解,服务器端验证应该再次检查长度.在这里,我只关注客户端部分.
我的问题是:在HTML textarea上模拟maxlength的最干净的客户端方法是什么?理想情况下,指向您使用过的经过验证的开源JavaScript代码.
我正在尝试在id为"body"的div中创建一个文本区域.我使用onClick事件调用该函数,但是当我单击它时,创建的所有内容都是[object HTMLTextAreaElement].我不太清楚如何让这个工作.
function opentextarea() {
var input = document.createElement('TEXTAREA');
input.setAttribute('name', 'post');
input.setAttribute('maxlength', 5000);
input.setAttribute('cols',80);
input.setAttribute('rows', 40);
var button = document.createElement('BUTTON');
document.getElementById("body").innerHTML=input, button;
}
Run Code Online (Sandbox Code Playgroud) 使用脚本http://viralpatel.net/blogs/2008/12/set-maxlength-of-textarea-input-using-jquery-javascript.html我试图将textarea的输入限制为1000个字符.原型也包含在页面中.
它在chrome中工作正常,但在firefox中给出以下错误并且输入不受限制:
$("textarea[maxlength]") is null
Run Code Online (Sandbox Code Playgroud)
我完全难过了.任何帮助,将不胜感激.代码片段如下.
textarea:
<%= text_area 'project', 'description', 'cols' => 60, 'rows' => 8, 'maxlength' => 1000 %>
Run Code Online (Sandbox Code Playgroud)
javascript:
<%= javascript_include_tag "jquery", "jquery.maxlength" -%>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($) {
$().maxlength();
})
</script>
Run Code Online (Sandbox Code Playgroud)
jquery.maxlength.js:
jQuery.fn.maxlength = function(){
$('textarea[maxlength]').keypress(function(event){
var key = event.which;
//all keys including return.
if(key >= 33 || key == 13) {
var maxLength = $(this).attr('maxlength');
var length = this.value.length;
if(length >= maxLength) {
event.preventDefault();
}
}
});
}
Run Code Online (Sandbox Code Playgroud) 我想设置textarea的最大长度.我使用以下代码相同,但它不起作用,
<textarea name="txtDescription" cols=10 rows=3 maxlength=50></textarea>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它需要超过50的字符.
我有以下代码,它运行良好,但问题是,超过500个字符后,它开始允许用户键入(它接受字符而不是限制它们!).
我怎么修改它?有没有可能推广这个代码,以便它可以处理多个文本区域,如一个函数,只是传递参数?
$('#txtAboutMe').keyup(function () {
var text = $(this).val();
var textLength = text.length;`enter code here`
if (text.length > maxLength) {
$(this).val(text.substring(0, (maxLength)));
alert("Sorry, you only " + maxLength + " characters are allowed");
}
else {
//alert("Required Min. 500 characters");
}
});"
Run Code Online (Sandbox Code Playgroud) html ×5
javascript ×5
textarea ×3
jquery ×2
maxlength ×2
angularjs ×1
ng-maxlength ×1
prototypejs ×1