Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

id.cs

com Scroll...

Recommended Posts

Bom dia amigos!Primeiramente não sei se estou postando na área certa, mas enfim, não sei se já perceberam o FireFox não da quebra de linha num textarea como o Internet Explorer, a questão é que já tentei diversas tags e estilos em css e nada de quebra de linha, a pessoa pode digitar por exemplo todo o e-mail numa única linha, se apertar a tecla 'enter' aí sim dá uma nova linha.Enfim, será que alguém pode me dar uma ajudinha com relação a isso? Quero que quando a pessoa digitar até o limite da largura pule para uma nova linha.Obrigado por enquanto!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Amigo, não seria exatamente isso, veja o html de teste:<html><head><title>Teste</title></head><body><textarea style="width: 200px;" name="textarea" rows="4"></textarea></body></html>Deve ocorrer uma quebra de linha no textarea quando chegar no limite da largura definida pelo estilo, compreende? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

O script que te passei faz exatamente isso, porém com tags <p>.

Pra funcionar no seu textarea é só voce alterar esta linha:

elementos = document.getElementsByTagName("p")
Para:

elementos = document.getElementsByTagName("textarea")
(além de colocar a classe word-wrap no textarea).

 

Testa ae e me diz o que aconteceu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testa ae e me diz o que aconteceu...

http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Bá micox, não deu em nada, continua do mesmo jeito, você me entendeu mesmo, o que qero fazer é que enquanto eu estiver digitando no textarea ao chegar no limite de largura ele pule para uma nova linha, que nem ocorre no IExplorer, bom, dá uma olhada no código como ficou:
<html><head><title>Teste</title><script>function wordWrap(){/******* wordWrap - Efetua quebra em palavras que não cabem na largura*			de seu elemento pai (até que chegue o CSS3)* Use a vontade mas coloque meu nome nos créditos. Tenha ética.* Dúvidas, me mande um email.* Versão: 1.0 - 26/04/2006* Autor: Micox - Náiron José C. Guimarães - micoxjcg@yahoo.com.br* Uso: chame a função no onload do body.*	  coloque a classe "word-wrap" nos parágrafos que quiser a quebra*******/	var larg_total,larg_carac,quant_quebra,pos_quebra;	var elementos,quem, caracs, texto, display_orig;		elementos = document.getElementsByTagName("textarea")		for(var i=0; i<elementos.length;i++){		if(elementos[i].className=="word-wrap"){			quem = elementos[i];						quem.innerHTML = String(quem.innerHTML).replace(/ /g,"Ø")			texto = String(quem.innerHTML)						quem.innerHTML = " "						display_orig = quem.style.display;			quem.style.display="block";			larg_oficial = quem.offsetWidth;			//alert("oficial: " + larg_oficial)			//alert("display " + quem.style.display)			if(!document.all) quem.style.display="table";			//alert("display " + quem.style.display)			quem.innerHTML = texto;			larg_total = quem.offsetWidth;			//alert("total: " + larg_total)						pos_quebra = 0;			caracs = texto.length;			texto = texto.replace(/Ø/g," ")			larg_carac = larg_total / caracs			if(larg_total>larg_oficial){				quant_quebra = parseInt(larg_oficial/larg_carac)				quant_quebra = quant_quebra - (parseInt(quant_quebra/6)) //quanto menor o num, maior a garantia;				quem.innerHTML = ""				while(pos_quebra<=caracs){					quem.innerHTML = quem.innerHTML + texto.substring(pos_quebra,pos_quebra + quant_quebra) + " "					pos_quebra = pos_quebra + quant_quebra;				}			}else{				quem.innerHTML = texto;			}//end if do larg_total>larg_oficial			quem.style.display = display_orig;		}//end if do word wrap	}//end for loop dos elementos}</script></head><body onload="wordWrap()"><textarea class="word-wrap" name="textarea" rows="4"></textarea></body></html>
Não sei o que fazer mais! :mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

ôooo id. hahhah. dá uma analizada ae cara. hehe <_<

 

O erro é até besta de tão simples. hehhe

Comé que você quer que ele quebre as linhas, sendo que a função tá sendo chamado no onload. Só que no momento do onload da página, seu textarea tá vazio!!!!!

Assim não vai quebrar nada ne?? pois o texto tá vazio. :wacko:

 

Voce tem que mandar a função rodar APÓS escrever alguma coisa. Ou seja, chama a função no onblur do textarea ou no onchange (mas apenas após escrever um espaço). http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eae Micox! http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Não me expliquei direito, bom, gostária que esta função sejá chamada ao digitar alguma coisa no textarea, mas a questão, botei no evento onChange do textarea mas nada de quebrar linha, o que quero é que ao digitar uma frase e se ela formaior do que a largura estipulada é feito então a quebra de linha, entendeu?

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

em php isso eh tranquilim...

:huh: Amigo, isso que pedi é que ao digitar algo no textarea deverá ser dado uma nova linha se os caracteres chegarem no limite da largura, que foi estipulada no style do textare. Não quero que carregue em outra página mas sim na mesma, o fato é que o FireFox não tem essa quebra de linha como o Internet Explorer, me entendem?

<textarea style="width: 200px;" onChange="wordWrap()" name="textarea" rows="4"></textarea>

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é...Testei do jeito que eu falei (aplicando um onkeydown ao digitar espaço e no onblur) e também alterando o innerHTML para o value, mas não funcionou.Acredito que seja devido à propriedade offsetWidth da textarea.Agora estou sem tempo de resolver. Se alguem conseguir postae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

em php isso eh tranquilim...

:huh: Amigo, isso que pedi é que ao digitar algo no textarea deverá ser dado uma nova linha se os caracteres chegarem no limite da largura, que foi estipulada no style do textare. Não quero que carregue em outra página mas sim na mesma, o fato é que o FireFox não tem essa quebra de linha como o Internet Explorer, me entendem?

<textarea style="width: 200px;" onChange="wordWrap()" name="textarea" rows="4"></textarea>

:)
eu sei rapaz... mas to falando isso, pq no php, você tem uma função q conta a qntdade d caracteres e você pode colocar um <br /> após a qntidade especificada... ae você faria uma função no php e chamaria no código ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu sei rapaz... mas to falando isso, pq no php, você tem uma função q conta a qntdade d caracteres e você pode colocar um <br /> após a qntidade especificada... ae você faria uma função no php e chamaria no código

Ae pa, mas php é processado no servidor.Ele quer que faça a quebra enquanto o usuário tiver digitando a palavra, sacou?Aí só com javascript mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu sei rapaz... mas to falando isso, pq no php, você tem uma função q conta a qntdade d caracteres e você pode colocar um <br /> após a qntidade especificada... ae você faria uma função no php e chamaria no código

Ae pa, mas php é processado no servidor.Ele quer que faça a quebra enquanto o usuário tiver digitando a palavra, sacou?Aí só com javascript mesmo.
É isso! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu sei... mas poderia criar essa função no php e requisitar pelo javascript qnd o cara digitasse... ;)o js faria a análise e o php pularia a linha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas aí entram 2 questões PA:1) Voce teria que submeter a página TOOODA vez que o cara terminasse de digitar alguma palavra. Algo inviável...2) A função do php quebra a palavra de acordo com determinada quantidade de caracteres. Nós queremos que quebra a palavra de acordo com determinada largura.Pra elementos que possuem innerHTML e offsetWidth o script que eu fiz deu 100% certo. Só que pro textárea não deu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas aí entram 2 questões PA:...

Compreendo o raciocinio do amigo PA, o fato é que este procedimento deve ocorrer sem carregar página alguma, tem de ser executada no momento da digitação no textarea, o FireFox tem essa frescura de não dar quebra de linha nos textarea, algo até consideravel, pois se tiver a necessidade de se dar uma nova linha a quebra de linha pode ser feita através de um "Enter" por exemplo, mas imaginamos um paragrafo por exemplo que ruim que ficaria! http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

sei q a minha versão eh ruim... seria mais uma bambiarra... :D mas acho q teria um jeito d fazer sem q carregasse toda a página sim..sei q a função eh pra qnt d caracteres e naum largura, mas poderia dar um número parecido d caracteres q ocupasse todo o textarea... sei q 10 i's ficariam mais finos q 10 A, mas sei lah neh...mas tah beleza... qq coisa, se eu achar, falo ae ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.