首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何显示短信号码,并限制在文本区写入一定数量的短信?

如何显示短信号码,并限制在文本区写入一定数量的短信?
EN

Stack Overflow用户
提问于 2016-11-29 03:16:56
回答 2查看 30关注 0票数 0

我想让用户写最多6短信到我的网络应用程序使用TextArea。在这里,每条短信长度是160个字符,我想显示为当前短信号码/6。当用户到达第6短信,然后应用程序不应该允许他们写第7条短信。我已经编写了Javascript来获取剩余的字符数,并将其显示在一个框中。下面是我的代码:

代码语言:javascript
运行
复制
<script type="text/javascript">
    function textCounter(field, countfield, maxlimit) {
        if (field.value.length > maxlimit)
            field.value = field.value.substring(0, maxlimit);
        else
            countfield.value = maxlimit - field.value.length;
    }
</script>


<asp:TextBox ID="txtMessage" runat="server" Width="300px" Height="150px" onkeyup="showPrevMsg(this.value);"
onkeydown="textCounter(this, this.form.remLen, 160);" onfocus="textCounter(this, this.form.remLen, 160);" onblur="textCounter(this, this.form.remLen, 160);" placeholder="Please enter the body of your message here" CssClass="form-control" TextMode="MultiLine"></asp:TextBox>


<input readonly="readonly" type="text" name="remLen" size="3" maxlength="3" value="160" />
characters left

但是有了上面的内容,我只能得到160个字符中的其余字符。我还需要显示有多少短信已经写出6,例如1/6,并限制用户在第6短信。请在这方面帮帮我。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-11-29 04:05:58

我已经做了一些事情来解决我自己的问题。在这里,我发布了我的解决方案,以防它可能对其他人有所帮助。

我已经创建了这个javascript函数来计算消息的部分。由于我对Javascript或Jquery不是很熟悉,所以我用这种方式(也许可以用简单的方式来完成)。

代码语言:javascript
运行
复制
         <script type="text/javascript">
        function msgCounter(txtField, msgCount) {
            if (txtField.value.length <= 160) {
                msgCount.value = "1/6";
            }
            else if (txtField.value.length > 160 && txtField.value.length < 321) {
                msgCount.value = "2/6";
            }
            else if (txtField.value.length > 320 && txtField.value.length < 481) {
                msgCount.value = "3/6";
            }
            else if (txtField.value.length > 480 && txtField.value.length < 641) {
                msgCount.value = "4/6";
            }
            else if (txtField.value.length > 640 && txtField.value.length < 801) {
                msgCount.value = "5/6";
            }
            else if (txtField.value.length > 801 && txtField.value.length < 961) {
                msgCount.value = "6/6";
            }
            else {
                //alert("Maximum SMS number reached!");
            }
        }
</script>

在asp textbox中,我调用这两个javascript函数来实现如下目标:

代码语言:javascript
运行
复制
 <asp:TextBox ID="txtMessage" runat="server" Width="300px" Height="150px" onkeyup="showPrevMsg(this.value);"onkeydown="textCounter(this, this.form.remLen, 960);msgCounter(this,this.form.msgNumCount);" onfocus="textCounter(this, this.form.remLen, 960);msgCounter(this,this.form.msgNumCount);" onblur="textCounter(this, this.form.remLen, 960);msgCounter(this,this.form.msgNumCount);" placeholder="Please enter the body of your message here" CssClass="form-control" TextMode="MultiLine"></asp:TextBox>

感谢大家花时间阅读这篇文章。

票数 0
EN

Stack Overflow用户

发布于 2016-11-29 19:12:16

这里我有一个aspx页面,你可以在这里找到你的解决方案。你可以直接使用这个。

代码语言:javascript
运行
复制
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="JSDemo.Test" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.6.4.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            document.getElementById("<%=txtMessage.ClientID%>").addEventListener("input", function (e) {
                if ($(this).val().length <= 160) {
                    $('#CharacterCount').html((160 - $(this).val().length) + ' characters left');
                    $('#SMSCount').html('1/6');
                } else if ($(this).val().length > 160 && $(this).val().length <= 320) {
                    $('#CharacterCount').html((320 - $(this).val().length) + ' characters left');
                    $('#SMSCount').html('2/6');
                } else if ($(this).val().length > 320 && $(this).val().length <= 480) {
                    $('#CharacterCount').html((480 - $(this).val().length) + ' characters left');
                    $('#SMSCount').html('3/6');
                } else if ($(this).val().length > 480 && $(this).val().length <= 640) {
                    $('#CharacterCount').html((640 - $(this).val().length) + ' characters left');
                    $('#SMSCount').html('4/6');
                } else if ($(this).val().length > 640 && $(this).val().length <= 800) {
                    $('#CharacterCount').html((800 - $(this).val().length) + ' characters left');
                    $('#SMSCount').html('5/6');
                } else if ($(this).val().length > 800 && $(this).val().length <= 960) {
                    $('#CharacterCount').html((960 - $(this).val().length) + ' characters left');
                    $('#SMSCount').html('6/6');
                } else {
                    e.preventDefault();
                    $('#CharacterCount').html('0 characters left');
                    $('#SMSCount').html('6/6');
                    alert('6 SMS has been completed!');
                    //
                    $(this).val($(this).val().substr(0,960));
                    return false;
                }
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="txtMessage" runat="server" Width="300px" Height="150px" placeholder="Please enter the body of your message here" CssClass="form-control" TextMode="MultiLine"></asp:TextBox>
            <span id="CharacterCount"></span>
            <br />
            <span id="SMSCount"></span>
        </div>
    </form>
</body>
</html>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40851807

复制
相关文章

相似问题

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