0

maxlength が設定され、1 行に保持されるテキストエリアを作成しようとしています。maxlength に達したら、textareas 属性をターゲットにする必要があるため、maxlength は 2 倍になり、別の行が追加されます。

これが機能するかどうかを確認するために、余分な行とさらに 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>

問題は、このコードが機能しないことです。試してみましたが、maxlength に達すると何も起こりません。また、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 に答える