达到“maxlength”后更改“textarea”行

时间:2013-06-01 17:52:24

标签: javascript

我正在尝试创建一个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控制台中没有错误。任何人都可以帮助我实现这一目标或指出我正确的方向吗?

谢谢!

2 个答案:

答案 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);
    }
}