我正在尝试创建一个textarea,其中有一个设置的maxlength并且它保持在一行上。达到maxlength后,需要定位textareas属性,以便将maxlength加倍并添加另一行。
要查看这是否可行,我尝试了添加额外的行和另外40个字符。这是我的代码......
<!DOCTYPE html>
<HEAD>
<TITLE>Cool Text Form</TITLE>
</HEAD>
<script language="javascript" type="text/javascript">
function newline()
{
x = document.getElementById("notesfield").length;
if (x >= 40)
document.getElementById("notesfield").rows="2";
document.getElementById("notesfield").maxlength="80";
}
</script>
<textarea id="notesfield" maxlength="40" rows="1" onkeyup="newline()" class="notes">Notes go here.</textarea>
问题是,此代码不起作用。我已经尝试过了,一旦达到最大长度,就没有任何反应。此外,Chrome的javascript控制台中没有错误。任何人都可以帮助我实现这一目标或指出我正确的方向吗?
谢谢!
答案 0 :(得分:3)
http://jsfiddle.net/UQTY2/119/
不确定您要执行的操作,但使用document.getElementById("notesfield").value.length
检查文本长度并忘记了问题
<!DOCTYPE html>
<HEAD>
<TITLE>Cool Text Form</TITLE>
</HEAD>
<script language="javascript" type="text/javascript">
function newline()
{
x = document.getElementById("notesfield").value.length;
if (x >= 40)
{
document.getElementById("notesfield").rows="2";
document.getElementById("notesfield").maxlength="80";
}
}
</script>
<textarea id="notesfield" maxlength="40" rows="1" onkeyup="newline()" class="notes">Notes go here.</textarea>
答案 1 :(得分:0)
尝试使用setAttribute()
更改'rows'和'maxlength'属性值。
function newline() {
var x = document.getElementById("notesfield").value.length;
if (x >= 40) {
document.getElementById("notesfield").setAttribute('rows', 2);
document.getElementById("notesfield").setAttribute('maxlength', 80);
}
}