Ir para conteúdo
Fórum Script Brasil
  • 0

Onde Entram As Tags Size E Maxlenght Aqui?


Guest --Webmaster --

Pergunta

Guest --Webmaster --

Amigos,

dei uma olhada nesse link:

http://www.criarweb.com/artigos/101.php

Mas até agora não entendi o que as funções size e maxlenght conseguem fazer. Como meu servidor não suporta CGI, tive que assinar um serviço que está redirecionando os emails (os recados enviados via formulário do meu site) pra mim. O código fonte da minha página é este:

********** COMEÇO DO CÓDIGO-FONTE *************

<form method="POST" action="http://endereco do meu servico redirecionador.php">
<p align="center">
<font face="Verdana"><font style="font-size: 11pt"><br>
</font><font style="font-size: 18pt; font-weight:700">Deixe aqui o seu recado!</font></font></p>
<p align="center">
<font face="Verdana"><font style="font-size: 11pt">Seu nome/apelido</font><font size="2">&nbsp; </font> <input type="text" name="Nome do Internauta" size="30" maxlength="40"><font size="2">
*<br>
<br>
</font> <font style="font-size: 11pt">Seu
</font> <span style="font-size: 11pt">E-mail/messenger</span><span style="font-size: 10pt">
(<i>não será divulgado</i>)</span><font size="2"> </font> <input type="text" name="E-mail do Internauta" size="25" maxlength="40"><font size="2">
*<br>
</font> <font style="font-size: 11pt"><br>
Sua Localidade</font><font size="2"> (Cidade, Estado) </font> <input type="text" name="Localidade do Internauta" size="20" maxlength="40"><font size="2">
*
<br>
<br>
<br>
* Campos de preenchimento obrigatório.<br>
<br>
</font><font style="font-size: 11pt">O que você achou do site no geral?</font><font size="2"><br>
(<i>preenchimento opcional</i>)</font><font style="font-size: 11pt"><br>
</font><font size="2"><br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="Avaliação do Site" value="otimo"></span><font style="font-size: 10pt">
Ótimo<br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="Avaliação do Site" value="muitobom"></span><font style="font-size: 10pt">
Muito Bom<br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="Avaliação do Site" value="bom"></span><font style="font-size: 10pt">
Bom<br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="Avaliação do Site" value="regular"></span><font style="font-size: 10pt">
Fraco/Mediano<br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="Avaliação do Site" value="ruim"></span><font size="2">
Ruim (nota 0)</font><font style="font-size: 11pt"><br>
<br>
Escreva aqui o seu recado:<br>
<br>
</font>
<textarea cols="40" rows="9" name="Comentários do Internauta"></textarea><font size="2">
<br>
<br>
<br>
</font>
<input type="submit" value="Clique aqui para enviar a sua mensagem"><font size="2">
<br>
<br>
<br>
</font>
<input type="Reset" value="Apagar todos os campos preenchidos"></font></p>
</form>

********** FINAL DO CÓDIGO FONTE ****************

Notem o seguinte - cada página do meu site pode ter um formulário criado no meu "serviço redirecionador" (e cada formulário pode ter um nome) que me pergunta quais são os valores do "input type name=".

Quando o internauta acessa a página, ele preenche os campos obrigatórios e os opcionais, e tudo que ele escreve eu recebo. O "input type=name" é o valor de cada campo ali (os valores que defini foram Nome, localidade e email).

Se ele não preencher o obrigatório, meu serviço redireciona ele pra uma página de "erro". Se preencher tudo, pra uma página de sucesso.

Ainda havia uma linha no código fonte original que peguei, e que removi. Era essa:

<form action="mailto:emailpessoal@emailpessoal.com" method="post" enctype="text/plain">

As minhas dúvidas:

1 - Se a primeira linha já faz o serviço (de mandar os formulários pra mim), qual a utilidade dessa linha form action aí em cima?

2 - Eu acho que era necessário colocar em todo o código-fonte as tags <form> e </form> pra que navegadores Netscape reconhecessem (pra IE não precisaria). Olhei ali e vi que há apenas um </form> que seria a tag já fechando. Devo colocar um <form> antes de tudo, ou o <form method> ali já é um <form> ?

3 - O negócio do size e maxlenght, é que eu queria fazer com que a caixa de texto (onde a pessoa escreve seu recado) limitasse o texto que é colocado ali em uma quantidade de caracteres, mas se eu entendi direito, precisaria pra isso criar uma linha parecida com essa:

<input type="???????" size=300>

Mas como seria essa linha? O tutorial não explicou. E onde ela entraria ali no meio disso:

<textarea cols="40" rows="9" name="Comentários do Internauta"></textarea><font size="2">

Eu quero que seja de um jeito que se o limite for de 500 caracteres, e o internauta der um copy-paste em um texto de 501 caracteres, o próprio campo do formulário remova o texto adicional, da mesma forma que o Orkut faz, quando você passa do limite de 1.000 ou 2.048 caracteres.

(Pelo que observei ali esse texto adicional é removido dos campos Nome/Email/Localidade, mas como fazer pro campo onde a pessoa digita o seu recado?)

Isso eu acho que seria o maxlenght. Ou senão, que apenas 500 caracteres iniciais do texto sejam enviados pra mim via email, e o excedente seja automaticamente cortado. Isso também serve.

Agora, o size eu não entendi onde entra. A tag <textarea> já não define as dimensões da caixa de texto?

É isso. :)

Editado por flavio
Utilize a tag CODE(ou HTML) para postar códigos
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
Ainda havia uma linha no código fonte original que peguei, e que removi. Era essa:

<form action="mailto:emailpessoal@emailpessoal.com" method="post" enctype="text/plain">
1 - Se a primeira linha já faz o serviço (de mandar os formulários pra mim), qual a utilidade dessa linha form action aí em cima?
Quando você usa "mailto:" você está pedindo ao navegador pra acionar o aplicativo padrão de correio eletrônico do usuário. No Windows, o padrão é o Outlook. Se você quer mandar um email sem usar o outlook, que é o que a maioria dos webdevelopers deseja, então substitui-se o mailto por um script em linguagem Server-Side como CGI ou PHP ou ASP ... Foi justamente o que você fez !! ;)
2 - Eu acho que era necessário colocar em todo o código-fonte as tags <form> e </form> pra que navegadores Netscape reconhecessem (pra IE não precisaria). Olhei ali e vi que há apenas um </form> que seria a tag já fechando. Devo colocar um <form> antes de tudo, ou o <form method> ali já é um <form> ?
As tags, em sua maioria funcionam aos pares. É esse o caso da tag FORM. Seu uso necessita de par abertura/fechamento. Acontece, que o HTML é mais rico: a maioria das tags também possui atributos. Existem atributos que são comuns a várias tags e outros que são únicos. Por exemplo, a tag FORM possui os atributos METHOD e ACTION que podem ser usados de acordo com a necessidade do desenvolvedor. Respondendo sua pergunta: o código que você escreveu, já possui um par abertura/fechamento. Está correto.
3 - O negócio do size e maxlenght, é que eu queria fazer com que a caixa de texto (onde a pessoa escreve seu recado) limitasse o texto que é colocado ali em uma quantidade de caracteres, mas se eu entendi direito, precisaria pra isso criar uma linha parecida com essa:
<input type="???????" size=300>

Mas como seria essa linha? O tutorial não explicou.

Diferente de um <input type="text">, a tag TEXTAREA não define um tamanho máximo. É até possível controlar a quantidade de caracteres inseridos, desde que se faça uso de uma linguagem Client-Side como JavaScript (preferida pela maioria das pessoas). Se tiver interesse, faça uma busca sobre "textarea" no fórum e se não encontrar crie um tópico na sessão de JavaScript perguntando como se faz isso.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Webmaster --

Opa, valeu amigo pelas respostas. Finalmente uma ajuda nesse assunto!

Quanto ao Javascript, se o internauta estiver usando a extensão Noscript do Firefox, esse recurso de limitar caracteres irá funcionar?

Só pra dar um exemplo: Quando eu não havia colocado o meu site na lista-branca (permitindo Java/Javascript a serem habilitados pro meu site) ele barrou o envio do formulário porque o mesmo seria enviado pelo método XSS, Cross Scripting, que seria em termos um site se conectando à outro para alguma tarefa. Meu site/formulário no caso é enviado pelo meu site, mas acessando o servidor do formulário, que envia aquele texto pro meu email particular.

Preciso saber se nesse caso do maxlenght, com um navegador com Noscript (e Java/Javascript desligados por padrão), funcionará, porque se não pegar, não adiantará nada eu conseguir limitar aqui.

Dei uma olhada nos tópicos lá da seção do Java, mas não acertei. Mas pelo menos, quando eu dei uma modificada no código, parece que agora o texto vem na íntegra, sem estar cortado. Apesar que, se for de um certo tamanho, o formulário vem zoado.

O código fonte agora ficou assim:


<form method="POST" action="http://serviço redirecionador de formulários.php">
<p align="center">
<font face="Verdana"><font style="font-size: 11pt"><br>
</font><font style="font-size: 18pt; font-weight:700">Deixe aqui o seu recado!</font></font></p>
<p align="center">
<font face="Verdana"><font style="font-size: 11pt">Seu nome/apelido</font><font size="2">&nbsp; </font> <input type="text" name="nomedointernauta" size="30" maxlength="40"><font size="2">
*<br>
<br>
</font> <font style="font-size: 11pt">Seu
</font> <span style="font-size: 11pt">E-mail/messenger</span><span style="font-size: 10pt">
(<i>não será divulgado</i>)</span><font size="2"> </font> <input type="text" name="emaildointernauta" size="25" maxlength="40"><font size="2">
*<br>
</font> <font style="font-size: 11pt"><br>
Sua Localidade</font><font size="2"> (Cidade, Estado) </font> <input type="text" name="localidadedointernauta" size="20" maxlength="40"><font size="2">
*
<br>
<br>
<br>
* Campos de preenchimento obrigatório.<br>
<br>
</font><font style="font-size: 11pt">O que você achou do site no geral?</font><font size="2"><br>
(<i>preenchimento opcional</i>)</font><font style="font-size: 11pt"><br>
</font><font size="2"><br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="avaliacaodosite" value="otimo"></span><font style="font-size: 10pt">
Ótimo<br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="avaliacaodosite" value="muitobom"></span><font style="font-size: 10pt">
Muito Bom<br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="avaliacaodosite" value="bom"></span><font style="font-size: 10pt">
Bom<br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="avaliacaodosite" value="regular"></span><font style="font-size: 10pt">
Fraco/Mediano<br>
</font>
<span style="font-size: 11pt">
<input type="radio" name="avaliacaodosite" value="ruim"></span><font size="2">
Ruim</font><font style="font-size: 11pt"><br>
<br>
Escreva aqui o seu recado:<br>
</font>
<html>
<HEAD>
&lt;script LANGUAGE="JavaScript">
var submitcount=0;
function checkSubmit() {
if (submitcount == 0)
{
submitcount++;
document.Surv.submit();
}
}

function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit)
{field.value = field.value.substring(0, maxlimit);}
else
{countfield.value = maxlimit - field.value.length;}
}
</script>
</HEAD>
<BODY>

<FORM NAME=Surv>
<p align="center"></p>
<div align="center">
<center>
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="3" width=550 style="border-collapse: collapse" bordercolor="#111111">

<tr><td valign="top">
&nbsp;<td valign="top">
<p align="center">
<textarea name="comentariosdointernauta" cols="44" rows="11" wrap="hard" onKeyDown="textCounter(this.form.comentariosdointernauta,this.form.remLentext,1000);" onKeyUp="textCounter(this.form.comentariosdointernauta,this.form.remLentext,1000);"></textarea>
<br><span style="font-size: 9pt"><br>
&nbsp;</span></TABLE>

</center>
</div>
</html>
<p align="center">
</font>
<input type="submit" value="Clique aqui para enviar a sua mensagem"><font size="2">
<br>
<br>
<br>
</font>
<input type="Reset" value="Apagar todos os campos preenchidos"></font></p>
</p>
</form>
[/codebox]

OBS: A pergunta do Javascript é importante, porque o Noscript por padrão não habilita nada de Java/Javascript pra sites que não estejam na sua lista branca.

Editado por flavio
Utilize a tag CODE(ou HTML) para postar códigos
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Webmaster --

Aí flávio, a dúvida foi colocada nesse tópico. Já descobri duas alternativas, mas ambas não ficaram boas (dá uma olhada lá).

E respondendo a minha pergunta, se o Noscript estiver ligado (e o site não estiver na lista branca de permitidos que acessam recursos Java/Javascript) qualquer limitação de caracteres não irá funcionar (e o texto, independente do tamanho, será enviado). Resta saber como ficaria isso com um contador Javascript, se seria desligado também.

O tópico é:

http://scriptbrasil.com.br/forum/index.php?showtopic=39767

Link para o comentário
Compartilhar em outros sites

  • 0

Qualquer codigo JS não seria executado. Nem mesmo um mero alert( )

Um teste rápido pra saber se o JS tá habilitado na sua máquina: digite (sem espaços em branco)

java script: alert("TESTE")

na barra de endereços do seu navegador. Se nada acontecer, então o JS não está habilitado e nenhuma outra instrucao JS será executada.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Outra dúvida

Então, eu dei uma analisada e aquele código em JS que você me passou no outro tópico conseguiu fazer funcionar o maxlenght na textarea. E realmente, sem Javascript o código não funciona.

O navegador Firefox possui uma extensão chamada Noscript que é cada vez mais usada hoje em dia, até por questões de segurança.

Eu por exemplo, utilizo a mesma. Ela bloqueia códigos em Java/Javascript por padrão, de qualquer site acessado, e só executa os comandos se você der carta branca ao site (temporaria ou permanentemente).

Como a maioria do pessoal utiliza IE, isso não deveria ser um problema, mas é crescente a quantidade de pessoas que usam o Firefox.

Por isso eu gostaria de saber se há algum método de fazer com que a caixa:

<input type="text" name="[aqui você coloca o nome da entrada. No meu caso, eu poderia chamar esse campo de nomedointernauta, sendo obrigatório seu preenchimento ou não, a meu critério]" size="200" maxlength="200">

Maxlenght = máximo de caracteres.

Size = tamanho lateral do campo de formulário.

O problema aí é que size é a largura do input type = text. Como ele não é um textarea, não pode ter esses atributos:

rows="número" cols="número"

rows = altura da caixa de texto

cols = largura (nesse caso = size)

E por quê eu estou perguntando se tem jeito do input type = text virar uma textarea? Simples, porque ele não precisa de Javascript ativado pra limitar a quantidade de caracteres que a pessoa pode digitar. Então aquele código lá do maxlenght será efetivo em 80% dos casos, digamos assim. 80% de pessoas que tem o Java ativado de cara. E 20% que não tenham.

O problema é esse - o código já está aí, mas não descobri como modificar a altura. Porque se a pessoa for digitar em uma tirinha dessas, fica difícil de visualizar.

Tem solução pra isso? Configurar altura no input type = text ?

Valeu.

Link para o comentário
Compartilhar em outros sites

  • 0

não que eu saiba!

O navegador Firefox possui uma extensão chamada Noscript que é cada vez mais usada hoje em dia, até por questões de segurança.

Não concordo com essa informação. você leu alguma pesquisa sobre isso??? A maioria dos navegadores atuais permitem sua configuração pelo usuário: pra que ele escolha se que habilitar, ou não, a execução de scripts!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Webmaster --

Hum, eu sei que em cada navegador você pode desligar Java se quiser, mas o Noscript do Firefox desliga Java e Javascript por padrão em qualquer site acessado, e tem várias opções úteis de configuração. O Java/Javascript do Firefox devem ficar ambos ligados, pois quando o Noscript estiver ligado, ele irá desligá-los automaticamente, e reabilitá-los quando você quiser, pro site desejado. Aqui neste fórum, por exemplo, eu não estou precisando habilitar.

Aqui vai um link sobre as extensões do Firefox:

http://www.guiadohardware.net/tutoriais/fi...eressantes.html

Descrição desse recurso:

NoScript: O funcionamento do NoScript pode ser comparado, meio forçadamente, ao de um firewall, mas, ao invés de filtrar portas e protocolos na conexão de rede, ele filtra scripts (java script, flash, etc) nas páginas exibidas pelo Firefox. Assim, além de abrir as páginas mais rapidamente, pois a página não executa uma série de funções, a segurança é mantida, pois alguns scripts podem conter códigos maliciosos.

Em razão de não ter todas as funções, algumas páginas podem não ser exibidas corretamente, todavia, de maneira geral, não é nada que prejudique severamente a navegação, assim como a qualquer momento pode ser liberados scripts naquela página, atitude que permitirá o normal funcionamento da página.

O NoScript é bastante flexível, pode-se permitir o uso de scripts em algumas páginas, assim como permitir temporariamente os scripts em alguma página, assim, quando for fechado o Firefox, a página é novamente proibida. Todas as funções do NoScript podem ser acessadas através do menu locazilado na barra de status.

img-f715601b.jpg

Pode-se instalar o NoScript através do link: https://addons.mozilla.org/firefox/722/

Ah, veja também esse link sobre as 5 extensões mais recomendadas pro Firefox, no quesito segurança. O Noscript é uma delas:

http://www.news.com/8301-10784_3-9784163-7...g=2547-1_3-0-20

Sobre o método correto de configurar o Noscript, visite esse tópico para maiores detalhes:

http://www.guiadohardware.net/comunidade/n...xerobank/777433

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Webmaster --

Dúvida: Se não há como modificar a altura dos inputs, há como atribuir maxlenght à uma textarea sem precisar de Javascript?

Em caso negativo pras duas perguntas, como fazer com que mesmo na hipótese do internauta desligar geral Java e Javascript, que ele não possa digitar a quantidade de caracteres que quiser pro formulário PHP enviar pro meu email?

Pelo menos os inputs não precisam de Javascript! E contra o limite deles, não há como burlar à primeira vista pro internauta normal.

Link para o comentário
Compartilhar em outros sites

  • 0

você pode determinar, no PHP, o tamanho máximo de caracteres.

Tipo, se for definido que o máximo é de 100 caracteres e o usuário digitar mais do que isso, somente a substring que contem os 100 primeiros caracteres será usada pra determinado fim.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...