<asp:TextBox CssClass="txt" ID="TextBox1" runat="server"
onkeyup="CountChars(this);" Rows="20" Columns="35"
TextMode="MultiLine" Wrap="true">
</asp:TextBox>
我需要在多行文本框中实现自动换行。我不能让用户每行写超过 35 个字符。我正在使用以下代码,它在每一行的指定字符处精确中断,将单词切成两半。我们能否解决这个问题,如果当前行没有足够的空间放置单词,我们将整个单词移动到下一行?
function CountChars(ID) {
var IntermediateText = '';
var FinalText = '';
var SubText = '';
var text = document.getElementById(ID.id).value;
var lines = text.split("\n");
for (var i = 0; i < lines.length; i++) {
IntermediateText = lines[i];
if (IntermediateText.length <= 50) {
if (lines.length - 1 == i)
FinalText += IntermediateText;
else
FinalText += IntermediateText + "\n";
}
else {
while (IntermediateText.length > 50) {
SubText = IntermediateText.substring(0, 50);
FinalText += SubText + "\n";
IntermediateText = IntermediateText.replace(SubText, '');
}
if (IntermediateText != '') {
if (lines.length - 1 == i)
FinalText += IntermediateText;
else
FinalText += IntermediateText + "\n";
}
}
}
document.getElementById(ID.id).value = FinalText;
$('#' + ID.id).scrollTop($('#' + ID.id)[0].scrollHeight);
}
编辑 - 1
我必须在没有特定分词的情况下最多显示 35 个字符,并且需要从右侧保留两个字符的边距。同样,限制应为 35 个字符,但总共需要 37 个字符(仅针对可见性问题。)