<asp:TextBox CssClass="txt" ID="TextBox1" runat="server"
onkeyup="CountChars(this);" Rows="20" Columns="35"
TextMode="MultiLine" Wrap="true">
</asp:TextBox>
複数行のテキストボックスにワードラップを実装する必要があります。ユーザーが1行に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文字を一列に表示する必要があり、右から2文字のマージンを維持する必要があります。繰り返しになりますが、制限は35文字に制限する必要がありますが、合計37文字のスペースが必要です(可視性の問題のためだけです)。