我有一个供用户输入的文本框,下面的代码是我创建文本框的方式。
<asp:TextBox ID="txtIncidentDesc" runat="server" Height="50px" Width="441px" Columns="4" Rows="8"></asp:TextBox>
我希望用户键入像
这样的长文本ttttttttttttttttttttttttttttttttttttttttttttttt
每当遇到50个字符时,它就会自动换行
ttttttttttttttttttttttttt
ttttttttttttttttttttttttt
有人知道我的代码有什么问题吗?
提前致谢!
您的评论和建议非常感谢!
答案 0 :(得分:1)
试试这个例子。它将为您提供线索并帮助您找到解决方案。
var cnt = 1;
function newline(text) {
var val = document.getElementById(text).value;
var t;
if (cnt > 1)
t = (val.length / 10 * 10) / cnt;
else
t = val.length;
if (t == 10) {
document.getElementById(text).value = val + '\n';
cnt = cnt + 1;
}
}
&#13;
<textarea id="tb" onkeypress="newline(this.id)" cols="30" rows="4"></textarea>
&#13;
答案 1 :(得分:0)
看起来您的文本框已经应用了分词符号,可能是在CSS?
最好的选择是在你的CSS中设置一个单词中断:正常。
或者你可以内联:
<asp:TextBox ID="txtIncidentDesc" runat="server" Height="50px" Width="441px" Columns="4" Rows="8" style="word-break:normal;"></asp:TextBox>
答案 2 :(得分:0)
我遇到了类似的问题,我试过的是。
<textarea id="txtdesc"></textarea>
Jquery代码
$(document).ready(function(){
$('#txtdesc').keypress(function(e){
var text = $(this).val();
var lines = text.split('\n');
if (e.keyCode == 13){
return true;
}
else{
//Should check for backspace/del/etc.
var cane = $(this).get(0).selectionStart;
var line = 0;
var charCount = 0;
$.each(lines, function(i,e){
charCount += e.length;
if (cane <= charCount){
line = i;
return false;
}
//\n count for 1 char;
charCount += 1;
});
var currentline = lines[line];
return currentline.length < 11;
}
});
});
答案 3 :(得分:0)
根据您的代码,您没有指定任何文本模式,因此默认情况下它将textmode作为单行。关于一些角色之后的新线,你必须检查和火功能分裂。如果我们提到textmode为多行,那么它就是你提到的宽度然后转到下一行。
这段代码也可以帮助您解决问题:
<script type="text/javascript">
function CheckReturns()
{
var txt = document.getElementById("TextBox1");
var splitResults = txt.value.split("\n");
if (splitResults[splitResults.length - 1].length < 50)
{
return true;
}
else
{
txt.value = txt.value + "\n\r";
}
}
</script>
调用文本框的onkeydown脚本:
<asp:TextBox ID="TextBox1" Height="50px" Width="500px" Rows="8" Columns="4" runat="server" onkeydown="return CheckReturns();" TextMode="MultiLine"></asp:TextBox>