Ir para conteúdo

POWERED BY:

Arquivado

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

Daniel-DF

[Resolvido] Comprimento de uma string

Recommended Posts

Boa tarde!

 

Estou fazendo um chat e gostaria de saber se com js ou jquery é possível pegar o valor da largura de uma string em um input.

 

Cheguei a fazer uma função em php para tratamento de quebra de linha mas nao surtiu o resultado desejado pois os caracteres nao são todos da mesma largura ex:(w!=i).

 

obs: não me refiro a quantidade de caracteres com o length.

 

tentei isso mas nao retornou nada:

 

<html>
<head>
<title></title>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

 	$('#valor').click( function(){
 	var compr = $('input').val().width();//innerWidth()
alert(compr);
 	
 	});

});
</script>
</head>
<body>
<input type="text">
<a href="#" id="apagar">valor</a>
</body>
</html>

Grato

Daniel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiquei em dúvida, você quer apenas a largura da string ou a largura da string para poder fazer quebras de linhas ?

 

1º caso:

<html>
	<head>
		<title>TextArea</title>
		
		<script type = "text/javascript">
			window.onload = function () {
				var inputs = document.getElementsByTagName ("input");
				var spans = document.getElementsByTagName ("span");
				
				spans[0].innerHTML = "0px";
				
				inputs[0].onkeyup = function () {
					var container_temporario = document.createElement ("span");
						container_temporario.innerHTML = this.value;
					
					document.body.appendChild (container_temporario);
					
					spans[0].innerHTML = container_temporario.offsetWidth + "px";
					
					document.body.removeChild (container_temporario);
				}
			}
		</script>
	</head>
	
	<body>
		Tamanho da string: <span></span> <br />
		
		<input type = "text"></input>
	</body>
</html>

2º caso:

"Inputs" não aceitam quebras de linhas, apenas "textarea" e com o mesmo a quebra da linha é feita automaticamente pelo navegador (FF 3.5, Chrome 3.x, IE 8)

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá m4n0w4r!

 

Exatamente isso!

 

A ideia é enviar esse valor junto com o post da mensagem pra ser tratado no servidor antes do registro no bd.

eu fiz algo em php mas resolveu apenas em parte, pois pegava a quantidade de caracteres de uma palavra pra definir o que fazer.

function quebra_linhas($val){

	$quebra = '';
	$array = explode(" ", $val);
	foreach ($array as $value) {
	$value_=strlen($value);
		if($value_>=19){
		$value=strtolower($value);
		}
 	$quebra .= wordwrap( $value, 19, '<BR>', 1)." ";
	}
	return $quebra;
}

a input é apenas pra teste. to usando textarea msm. o problema nao é na textarea e sim na div que recebe as msgs pois nao encontrei outra forma de evitar barra de rolagem horizontal/srting ultrapassando a div.

vlw msm.

 

Abraço

 

[RESOLVIDO]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa qualquer coisa to ae pra continuar ajudando.

 

So algumas considerações finais para desencargo de consciência:

 

- Meu script não é confiável, ele pode dar resultados errados e se quiser eu arrumo ele

- Qualquer conteúdo de uma div quebra linha automaticamente sem usar barra de rolagem, então não entendi nada :D

 

Mesmo com esses problemas estamos entendidos ou você ainda tem dúvidas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa qualquer coisa to ae pra continuar ajudando.

 

So algumas considerações finais para desencargo de consciência:

 

- Meu script não é confiável, ele pode dar resultados errados e se quiser eu arrumo ele

- Qualquer conteúdo de uma div quebra linha automaticamente sem usar barra de rolagem, então não entendi nada :D

 

Mesmo com esses problemas estamos entendidos ou você ainda tem dúvidas?

 

Por enquanto ta tranquilo amigo, vou seguir sua ideia com jquery. quanto a div realmente quebra, exceto se a string nao tiver espaços. pelo menos nos testes q fiz aqui. você sabe algo que resolva isso so com css?

quanto ao script você fala em erros no q diz respeito a espaços que nao alteram a largura atual?

se for isso eu uso split e join.

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa.

 

Quanto a div realmente quebra, exceto se a string nao tiver espaços. pelo menos nos testes q fiz aqui. você sabe algo que resolva isso so com css?

Wrod-wrap e text-wrap, ambos providos pela CSS 3 que ainda vai demorar um tempo até ser compatível com todos os navegadores do mercado.

 

Documentação:

http://www.w3.org/TR/css3-text/

 

quanto ao script você fala em erros no q diz respeito a espaços que nao alteram a largura atual?

se for isso eu uso split e join

 

Meu script vai fornecer resultados errados para praticamente qualquer coisa que você alterar na "input" com CSS, um exemplo é o "font-family".

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.