Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向HTML表单添加计数器并计算积分_Javascript_Jquery_Html_Character_Counter - Fatal编程技术网

Javascript 向HTML表单添加计数器并计算积分

Javascript 向HTML表单添加计数器并计算积分,javascript,jquery,html,character,counter,Javascript,Jquery,Html,Character,Counter,我有一个简单的HTML表单,允许用户输入一些文本,然后通过SMS网关作为SMS/TXT消息发送。用户将消息文本输入文本区域: <textarea rows="10" cols="40" id="smsbody" validate = "required:true" name="MessageBody"></textarea> 他们可以输入尽可能少或尽可能多的文本,但由于每条短信限制为160个字符,我想显示一个字符计数器,显示输入的字符数,然后还可以计算这将使用多少短

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

<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条短信 200个字符,2条短信

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

非常感谢,, 史蒂夫是这样的吗

试试看:

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

HTML


0个字符,
0条短信,
剩余160
​​​​
jQuery

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);
    }
});​
var$chars=$('#char');
变量$msgs=$(“#msgs”);
var$remg=$(“#remg”);
$('#smsbody').keyup(函数(evt){
var len=this.value.length;
$chars.text(len);
如果(len像这样的事情

试试看:

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

HTML


0个字符,
0条短信,
剩余160
​​​​
jQuery

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);
    }
});​
var$chars=$('#char');
变量$msgs=$(“#msgs”);
var$remg=$(“#remg”);
$('#smsbody').keyup(函数(evt){
var len=this.value.length;
$chars.text(len);

如果(len Hi Patrick非常感谢我对其进行了一些调整,但效果很好。非常感谢。感谢Steven我现在一直在测试它,效果很好。一个简单的问题:当你开始发送短信时,短信数量为0,如果你输入几个字符,它会增加到1。当你删除文本,使字段为空时,短信会变得混乱年龄计数保持在1。如果再次出现零个字符,这可以减少到零吗?@Steve-当然。我将
if()
中的第一行更改为
$msgs.text((len&&1)| 0)
。在这里查看:谢谢Patrick,这是一个不错的选择。关于一个稍微相关的主题,你知道是否可以在帖子中提交字符数和短信以及我的HTML表单元素的其余部分吗?这是一个PHP页面,我正在用帖子值更新数据库,并且还想更新数据库中的字段或者字符和短信的数量。我可以再次计算这些,但如果我能将它们作为帖子的一部分与我的表格一起传递,我希望避免这种情况。非常感谢,Steve@Steve-我想我会有一些隐藏的输入,你可以在提交时将数字复制到其中。类似于
$('#myForm').submit(function(){$('#char_hidden').val($('#char').text();)})
Hi Patrick非常感谢我对其进行了一些调整,但效果很好。非常感谢。感谢Steven我现在一直在测试它,效果很好。一个简单的问题:当你开始发送短信时,短信数量为0,如果你输入几个字符,它将增加到1。当你删除文本,使字段为空时,短信数量将增加到1消息计数保持在1。如果再次出现零个字符,该值是否可以减少到零?@Steve-当然。我将
if()
中的第一行更改为
$msgs.text((len&&1)| 0)
。在这里查看:谢谢Patrick,这是一个不错的选择。关于一个稍微相关的主题,你知道是否可以在帖子中提交字符数和短信以及我的HTML表单元素的其余部分吗?这是一个PHP页面,我正在用帖子值更新数据库,并且还想更新数据库中的字段或者字符和短信的数量。我可以再次计算这些,但如果我能将它们作为帖子的一部分与我的表格一起传递,我希望避免这种情况。非常感谢,Steve@Steve-我想我会有一些隐藏的输入,你可以在提交时将数字复制到其中。类似于
$('#myForm').submit(function(){$(“#char_hidden”).val($(“#char”).text())};