14/11/2008 - 20:57
Não e sim. Vou explicar.
Não, pois não existe qualquer atributo HTML para a tag que delimite no número máximo de caracteres que um textarea pode ter.
Sim, pois com javascript tem como isso ser feito. Abaixo a função.
function limita(campo){
var tamanho = document.form1[campo].value.length;
var tex=document.form1[campo].value;
if (tamanho>=124) {
document.form1[campo].value=tex.substring(0,124);
}
return true;
}
Essa função conta quantos caracteres tem no textarea e não permite que enhum outro seja inserido.
Linha a linha
function limita(campo){ - Declara a função e receb uma variável com o nome do campo(textarea) em que você quer que a função atue.
var tamanho = document.form1[campo].value.length; - Declara uma variável (tamanho) e insere nela a quantidade de caracteres do textarea.
form1 - O nome do formulário, neste caso está declarado name=”form1″
[campo] - O nome do campo, textarea
value - O conteúdo
length - Quantidade de caracteres
Ou seja, o campo do formulário form1 contém x caracteres.
var tex=document.form1[campo].value - Declara a variável text e recebe o conteúdo do textarea.
if (tamanho>=124) { - Pergunta se a variável tamanho(quantidade de caracteres) é maior que 124
document.form1[campo].value=tex.substring(0,124); - Insere dentro do campo o conteúdo recebido na variável tex com a quantidade máxima de caracteres
substring - Extrai o conteúdo de uma variável, no caso tex, entre os delimitadores, ou seja, do caractere 0 até o 124
Link funcionando
download
Enviado por: Leandro Garcia - Categoria(s): dicas, tutorial
Tags relacionadas: maxlenght, textarea, tutorial
30/10/2008 - 21:01
Resolvi escrever o post anterior, pois percebi que algumas pessoas que estão começando com internet ou programação não sabiam o que era. Meu intuito em principio era falar apenas sobre como trabalhar com querystring no javascript.
Quando trabalhamos apenas com a interface de um projeto, ou com um site sem backend, não temos acesso a linguagens Servidor (ASP, JSP, PHP…). Isso se torna um problemão quando nos pedem que determinada página realiza uma ação, como por exemplo um alert, apartir do clique em uma outra página. Ficou confuso? Vou tentar melhorar.
Uma página, vou chamar de teste, ao ser aberta exibe um texto escrito “teste”, e mais nada. Uma segunda página, chamarei de index, exibe um link direcionado para a página “teste”, mas o projeto requer que após o clique no link, ao acessar a página seja exibido um alert dizendo “trabalhando com querystrings”. Como fazer isso? Com querystrings. Como? Utilize a função abaixo.
function QueryString(variavel){
var variaveis=location.search.replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
var nvar
if(variaveis!=""){
var qs=[ ]
for(var i=0;i<variaveis.length;i++){
nvar=variaveis[i].split("=")
qs[nvar[0]]=unescape(nvar[1])
}
return qs[variavel]
}
return null
}

Explicando linha por linha:
function QueryString(variavel){ - define a função com o nome
var variaveis=location.search.replace(/\x3F/,”").replace(/\x2B/g,” “).split(”&”) - cria uma variável onde são pegadas todos itens da query.
var nvar - caria uma variável
if(variaveis!=”"){ - pergunta se a variável que criamos anteriormente com os itens da query tem conteúdo
var qs=[ ] - Cria uma variável array chamada qs
for(var i=0;i<variaveis.length;i++){ - faz um looping para percorrer todas as variáveis encontradas na query
nvar=variaveis[i].split(”=”) - define o valor da variáve
qs[nvar[0]]=unescape(nvar[1]) - define o valor para cada iten do array } - fecha o loop;
return qs[variavel] - retorna o que encontrou. Agora você tem como pegar os itens da query, mas ainda não está funcionando, pois você precisa chamar esta função de alguma maneira. Vou chamá-la através de uma escrita.
<script>
document.write('A query é:' + QueryString('id') )
</script>
A variável id chamada é a que passamos via barra de endereços. Ex.
www.leandrogarcia.com/tutorials/query/query.html?id=1
Vai ser exibido na tela A query é: 1 Abraços.
Enviado por: Leandro Garcia - Categoria(s): JavaScript, dicas, tutorial
Tags relacionadas: dicas, função, JavaScript