0

我正在尝试创建一个文本区域,其中有一个设置的 maxlength 并且它保留在一行上。一旦达到最大长度,就需要定位 textareas 属性,以便将最大长度加倍并添加另一行。

为了看看这是否可行,我尝试了添加额外的一行和四十多个字符。这是我的代码...

<!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 控制台中也没有错误。任何人都可以帮助我完成这项工作或为我指明正确的方向吗?

谢谢!

4

2 回答 2

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>
于 2013-06-01T18:00:27.567 回答
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);
    }
}
于 2013-06-01T18:10:30.033 回答