在多行文本框上设置max char(作为可见性允许)

时间:2009-09-06 10:07:52

标签: asp.net jquery textbox textarea

是否可以使用多行文本框(即使用asp.net c#)输入的最大字符数不能超过可见文本框大小?

我已经垂直移动了滚动条(溢出:隐藏)。

现在我想要它,以便说如果多行文本框显示100px高度(或说5行),用户输入的文本框高度不能超过?

必须有一个JS / JQuery hack?

3 个答案:

答案 0 :(得分:1)

不,这是不可能的。

因为ASP.NET文本框最终变成了HTML textarea,它不支持文本限制。

你可以使用JavaScript做这个技巧,当然,但是对于可见区域而言,它可能并不那么容易。您将需要以某种方式计算当前使用的字体的度量,然后尝试在内存中渲染以查看是否超出了框的限制。在为Windows编程时可能有这样的技巧,但是使用网页可能不可能。

答案 1 :(得分:0)

虽然它最终变成了一个textarea你可以做到这一点,但它很hacky。

使用textarea按键上的JQuery,检查值的长度,如果超过阈值,则删除最后一个字符。

就像我说hacky。

祝你好运,

答案 2 :(得分:0)

您可以限制文字最大值。 char如下。

客户端

function ValidateLength()
{
    if(document.forms[0].txtFlightRemarks.value.length > MAX_LENGTH)    
    {           
        document.forms[0].txtFlightRemarks.value = document.forms[0].txtFlightRemarks.value.substring(0,MAX_LENGTH);
        document.forms[0].txtFlightRemarks.focus();
        return false;
    }    
} 

服务器端(Page_Load):将onchange和onkeyup事件附加到所需的textarea。

txtFlightRemarks.Attributes.Add("onchange", "ValidateLength();");
txtFlightRemarks.Attributes.Add("onKeyUp", "ValidateLength();");