首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将计数器添加到HTML表单并计算学分

将计数器添加到HTML表单并计算学分
EN

Stack Overflow用户
提问于 2010-07-13 20:33:07
回答 1查看 2.3K关注 0票数 1

我有一个简单的HTML表单,允许用户输入一些文本,然后通过SMS网关作为SMS/TXT消息发送。用户将消息文本输入文本区域:

代码语言:javascript
运行
复制
<textarea rows="10" cols="40" id="smsbody" validate = "required:true" name="MessageBody"></textarea>

他们可以输入尽可能少或尽可能多的文字,然而,由于每条短信被限制为160个字符,我想显示一个字符计数器,它既显示输入的字符数量,然后还计算这将使用多少短信信用。计算积分的公式基于输入的积分总数:如果一条消息超过160个字符,它将被分成多个消息部分。每个消息部分的长度限制为153个字符(报头为7个字节)。因此,160个字符的消息将是1个信用,306个字符将是2个信用,459个字符将是3个信用,依此类推。

理想情况下,我希望它以这种格式出现:

0个字符,1条SMS消息200个字符,2条SMS消息

我已经在使用jQuery了,很高兴也使用了基于jQuery的解决方案。

非常感谢,史蒂夫

EN

Stack Overflow用户

回答已采纳

发布于 2010-07-13 20:44:26

像这样的东西?

尝试一下: http://jsfiddle.net/kG8U2/2

我想我的理解是正确的,对于1条消息,它可以是160个字符,但对于多条消息,消息的数量是字符数除以153。

HTML

代码语言:javascript
运行
复制
<textarea rows="10" cols="40" id="smsbody" validate = "required:true" name="MessageBody"></textarea>
<div id='message'>
    <span id='char'>0</span> characters,
    <span id='msgs'>0</span> SMS message(s),
    <span id='remg'>160</span> remaining
</div>​​​​

jQuery

代码语言:javascript
运行
复制
var $chars = $('#char');
var $msgs = $('#msgs');
var $remg = $('#remg');

$('#smsbody').keyup(function(evt) {
    var len = this.value.length;
    $chars.text(len);
    if(len <= 160) {
        $msgs.text(1);
        $remg.text(160 - len);
    } else {
        var multi = Math.ceil((len/153)) ;
        $msgs.text(multi);
        $remg.text((multi * 153) - len);
    }
});​

编辑:修复了一个缺陷,它被关闭了1个字符,并添加了一个有趣的剩余计数器。

票数 5
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3237164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档