作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在同一个网页上有多个文本区域,这些文本区域将计算它们的字符,它们将需要相同的类名。问题是我只能输入第一个文本区域而不是其他文本区域,但第一个文本区域字符数会影响其他文本区域,因为每个文本区域都有相同的类名我需要弄清楚如何让每个字符数只影响其最接近的文本区域。例如,当我在第一个 textarea 字段中键入内容时,所有 textarea 字段的字符数都会受到影响。我想知道如何在不改变 textareas 类名称的情况下阻止这种情况发生?
这是 JSFiddle https://jsfiddle.net/2dytq9bj/
HTML
<article class="review">
<div class="review-details">
<div class="review-stats">
<!-- content -->
</div>
<form method="post" action="" class="review-form">
<fieldset>
<ol>
<li><label for="review-info">Review Info:</label></li>
<li><textarea name="review_info" class="review-info"></textarea><div class="some"><span class="count"></span></div></li>
</ol>
</fieldset>
<fieldset>
<ol>
<li><input type="submit" name="submit_review" value="Submit Review" class="submit-review" /></li>
</ol>
</fieldset>
</form>
</div>
</article>
<article class="review">
<div class="review-details">
<div class="review-stats">
<!-- content -->
</div>
<form method="post" action="" class="review-form">
<fieldset>
<ol>
<li><label for="review-info">Review Info:</label></li>
<li><textarea name="review_info" class="review-info"></textarea><div class="some"><span class="count"></span></div></li>
</ol>
</fieldset>
<fieldset>
<ol>
<li><input type="submit" name="submit_review" value="Submit Review" class="submit-review" /></li>
</ol>
</fieldset>
</form>
</div>
</article>
<article class="review">
<div class="review-details">
<div class="review-stats">
<!-- content -->
</div>
<form method="post" action="" class="review-form">
<fieldset>
<ol>
<li><label for="review-info">Review Info:</label></li>
<li><textarea name="review_info" class="review-info"></textarea><div class="some"><span class="count"></span></div></li>
</ol>
</fieldset>
<fieldset>
<ol>
<li><input type="submit" name="submit_review" value="Submit Review" class="submit-review" /></li>
</ol>
</fieldset>
</form>
</div>
</article>
查询
$(document).ready(function() {
function countCharacters( input, output, max ) {
var $input = $(input);
var $output = $(output);
$output.text(max + ' characters left');
$input
.keydown(function(event) {
if (event.keyCode != 8 &&
event.keyCode != 46 &&
$input.val().length >= max)
event.preventDefault();
})
.keyup(function() {
var val = $input.val().slice(0, max);
var left = max - val.length;
$input.val(val);
$output.text(left + ' characters left');
});
}
countCharacters('.review-info', '.review-info + div .count', 5000);
});
CSS
*{
border: 0;
margin: 0;
padding: 0;
}
article{
margin-top: 1em;
}
textarea{
width: 90%;
}
input{
margin: 1em 0;
color: green;
}
最佳答案
我所做的是将 keydown 事件绑定(bind)到每个 .review-info 类,这样我就可以从函数上下文中获取它,其中 this 引用了我实际写入的 textarea。
$(document).ready(function() {
function countCharacters(e) {
var $input = $(this);
var maxLetters = $input.attr('data-max')
var inputLength = $input.val().length
var $output = $('+ div', this);
$output.text((maxLetters - inputLength) + ' characters left');
if (e.keyCode != 8 &&
event.keyCode != 46 &&
$input.val().length >= maxLetters){
event.preventDefault();
}
}
$('.review-info').keydown(countCharacters);
});
textarea 的最大长度现在取自 html data-max 属性,因此您可以为每个 textarea 设置不同的大小。
关于javascript - 具有相同类名的jquery多个字符计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34709708/
现在我正在尝试实现 flash programming specification对于 PIC32MX。我正在使用 PIC32MX512L 和 PIC32MX512H。 PIC32MX512L最终必须
我是一名优秀的程序员,十分优秀!