2017-11-15 35 views
0

私のasp.netのWebページには、最大5行のテキストしか入力できないようにするための大きなマルチラインのテキストボックスがあります。 (利用者が第五の行に、それは単に彼をできないだろうしながら、Enterキーを押しした場合。)複数行の行の数を制限するasp.netのテキストボックス

私はテキストボックスを持っているコード:私はRowsプロパティといくつかでそれを試してみました

<asp:TextBox textmode="multiline" 
      runat="server" 
      ID="TextBox1" 
      name="TextBox1" 
      style="OVERFLOW:hidden; height:165px; width:95%; resize:none;"> 

</asp:TextBox> 

JavaScript関数は成功しません。

これはasp.netテキストボックスで可能ですか、この場合に使用できる他のタイプのテキストボックスがありますか?

ありがとうございました。

答えて

0

これはasp:TextBoxで余分な作業をしなくても可能ではないと思います。 FYIでは、「行」と「列」プロパティは表示メトリックであり、文字数やキャリッジリターンを制限しません。 MaxLengthプロパティは、asp:Textboxで "multiline"を使用すると無効になることもよく文書化されています。

のように、いくつかのオプションがあります。注:通常、入力はデータベーステーブルのフィールドサイズを超えないように長さで検証されます。うまくいけば、これらの例が役に立ちます。

1)独自のJavascriptバリデータをロールバックします。 (この例では、長さではなく、キャリッジリターンを有効に制限されていますが、さらにカスタマイズすることができます。)

<asp:TextBox textmode="multiline" 
      runat="server" 
      ID="TextBox1" 
      name="TextBox1" 
      onkeypress="return EnforceFieldLengthMax(this,10)" 
      style="OVERFLOW:hidden; height:165px; width:95%; resize:none;"> 
     </asp:TextBox> 

<script language="javascript"> 
     function EnforceFieldLengthMax(txt, maxLen) 
     { 
      if (txt.value.length > (maxLen - 1)) 
      { 
       return false; 
      } 
     } 
    </script> 

2)正規表現のバリデータ コントロールがフォーカスを失うまで(残念ながら、これは発生しませんので、私はのMaxLength強制しないHTMLのTextAreaオブジェクトを使用します)**

<asp:TextBox textmode="multiline" 
      runat="server" 
      ID="TextBox2" 
      name="TextBox2" 
      style="OVERFLOW:hidden; height:165px; width:95%; resize:none;"> 
     </asp:TextBox> 

<asp:Label AssociatedControlID="txtValidateMe"></asp:Label> 


<asp:RegularExpressionValidator ID="TextBox2Validator" 
           ControlToValidate="TextBox2" ErrorMessage="Entry can't exceed 20 characters" 
           ValidationExpression="^[\s\S]{0,20}$" runat="server" Display="Dynamic" SetFocusOnError="true" /> 

3)この1つはあなたが探しているものだと思いますが、ここで念の例ではありません

<textarea maxlength="50"></textarea> 
関連する問題