2016-11-28 5 views
0

TextAreaを使ってWebアプリケーションに最大6文字のSMSを書くことを許可します。ここでは、SMSの長さはそれぞれ160文字で、現在のSMS番号/ 6として表示したいと考えています。ユーザーが6番目のSMSに到達すると、アプリケーションは7番目のSMSの書き込みを許可しないでください。 私はJavascriptを書いて残りの文字番号を取得し、それをボックスに表示します。ここに私のコードは次のとおりです。SMS番号を表示してテキスト領域に一定数のSMSを書き込む方法を教えてください。

<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 

しかし、私はまた、例えば1/6のための6の外に書かれているどのように多くのSMS表示し、上のユーザーを制限する必要がある160のうち、私は残りの文字を取得することができます上記で6番目のSMS。これで私を助けてください。ありがとう。

+0

更新 'countfield = field.value.length;'は、 'maxlimit'から減算するのではなく、フィールドの長さを表示します。 2番目の部分については、ユーザーは1番目のSMSを作成するためにポストバックしますか? – Searching

+0

ユーザーは最初のSMSを作成するためにポストバックしません。 – barsan

答えて

0

私は自分の問題を解決するために何かをしました。ここで私はそれが他の人を助けるかもしれない場合に備えて私のソリューションを投稿しています。

私はメッセージの一部を数えるためにこのjavascript関数を作成しました。私はJavascriptやJqueryに慣れていないので、このようにしています(簡単な方法で行うことができます)。

<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> 

これを読むために時間を割いてくれてありがとうみんな:私はこのような目標を達成するために、両方のjavascript機能を呼んでいるのASPテキストボックスから

  <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> 

0

ここでは、ソリューションを見つけることができるaspxページが1つあります。あなたはこれを直接使うことができます。

<%@ 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> 
関連する問題