[Repost] find textarea number of cols when it is set to 100%

G

Guest

[if this question was already anwsered, simply point me to a link, I
did not find anything with the keywords of the subject. If it is not
clear, tell me]

Hi,
I have an application whose textareas rows automatically resize onFocus
to the number of lines in the textArea.
The cols are set to 100% (in a CSS file) in order to always take the
full browser width

I use textarea.value.split('\n') to find the number of lines.
Some lines are longer than the 100% width and they wrap.
However, wrappeed lines do not contain '\n'. Thus my textarea has less
lines than what is needed to display it without scroll bars.

I don't want to use wrap='hard' as the text shall be stored in the DB in
its original form (even if lines are too long to be displayed without
wrapping).

I would like thus to get the number of cols dynamically
in order to do:
lines=textarea.value.split('\n');
realNumberOfLines=0;
for(i=0; 1<lines.length; i++) {
realNumberOfLines = realNumberOfLines +
Math.ceil(lines.length/textarea.cols);
}
return realNumberOfLines;


The problem is that textare.cols returns -1 in mozilla 1.7 and a value
lower than the reality in IE6.

Does anybody have an idea on how to achieve that?

Regards,
Arnaud.
 
J

JustRemoveYaz

[if this question was already anwsered, simply point me to a link, I
did not find anything with the keywords of the subject. If it is not
clear, tell me]

Hi,
I have an application whose textareas rows automatically resize onFocus
to the number of lines in the textArea.
The cols are set to 100% (in a CSS file) in order to always take the
full browser width

I use textarea.value.split('\n') to find the number of lines.
Some lines are longer than the 100% width and they wrap.
However, wrappeed lines do not contain '\n'. Thus my textarea has less
lines than what is needed to display it without scroll bars.

I don't want to use wrap='hard' as the text shall be stored in the DB in
its original form (even if lines are too long to be displayed without
wrapping).

I would like thus to get the number of cols dynamically
in order to do:
lines=textarea.value.split('\n');
realNumberOfLines=0;
for(i=0; 1<lines.length; i++) {
realNumberOfLines = realNumberOfLines +
Math.ceil(lines.length/textarea.cols);
}
return realNumberOfLines;


The problem is that textare.cols returns -1 in mozilla 1.7 and a value
lower than the reality in IE6.

Does anybody have an idea on how to achieve that?

Regards,
Arnaud.



Here is a really bad hack but it is the only way I could find out the
number of columns.

function getNumberOfColumns( oForm) {
oForm.elements["one"].style.width = "100%";
fullWidth = oForm.elements["one"].clientWidth;
oForm.elements["one"].style.width = null;

while( oForm.elements[ "one"].clientWidth < fullWidth) {
oForm.elements["one"].cols = oForm.elements[ "one"].cols + 1;
}
oForm.elements["one"].cols = oForm.elements[ "one"].cols - 1;
alert( oForm.elements["one"].cols);
}

I have only tested this in Internet Explorer 6.0. It will probably
require some tweaking for other browsers.

Peace, Vm
Yaz
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top