stefansvw: Javascript und wrap=physical

Beitrag lesen

Hallo zusammen,

ich habe in meiner Textarea schaut so aus.

<textarea name='msg' maxlength='500' onKeyUp='CheckStr(this)' onKeyDown='CheckStr(this)' STYLE='overflow:hidden' cols='50' rows='10'  wrap='physical'>Text bitte eingeben</textarea>";

Und dieser Bereich soll als Druckvorlage dienen also cols=50 und rows=10 und maxlength=500.

Habe nun ein Script geschrieben, welches das eigentlich händeln soll.

function CheckStr(userInput)
{

String.prototype.rtrim = function (clist) {
  if (clist)
    return this.replace (new RegExp ('[' + clist + ']+$'), '');
    return this.replace (/\s+$/, '');
  }

var StrLen = window.document.pruef.msg.value.length;
  var zeilen = window.document.pruef.msg.rows;
  var spalten = window.document.pruef.msg.cols;
  var s = window.document.pruef.msg.value;
  var z = "";
  var a = "";

if (StrLen > 500 ) {
    window.document.pruef.msg.value = window.document.pruef.msg.value.substring(0,497) + "...";
   alert("Sie haben die maximale Länge von 500 Zeichen überschritten. Ihr Eingabe wurde auf 500 Zeichen gekürzt" );

window.document.pruef.msg.value += window.document.pruef.msg.value.substring(0,50) + "\n";

a = window.document.pruef.msg.value.split("\n");

if(a.length > zeilen) {
    alert("Im Druckbereich können nur "+ zeilen +" Zeilen angezeigt werden");
    for(var i = 0; i < zeilen-1; i++)
      z += a[i]+ "\n";
      z += a[i];

window.document.pruef.msg.value = z.rtrim();
  }
    StrLeft = 0;
  }
  else {
    StrLeft = 500 - StrLen;
      a = window.document.pruef.msg.value.split("\n");

if(a.length > zeilen) {
    alert("Im Druckbereich können nur "+ zeilen +" Zeilen angezeigt werden");
    for(var i = 0; i < zeilen-1; i++)
      z += a[i]+ "\n";
      z += a[i];

window.document.pruef.msg.value = z.rtrim();
  }
  }
}

wenn ich 10 Zeilen per Enter eingebe funktioniert es. Gebe ich aber einen String ein der über z.B. 3 Zeilen geht, erkennt er es trotz wrap=Physical nicht als \n also Zeilenumbruch. Wie könnte ich hier einen Zeilenumbruch erzwingen? Also das es wirklich nicht über 10 Zeilen raus geht.

Gruß
Stefan