O HTML5 introduziu o placeholder
atributo nos input
elementos, o que permite exibir um texto padrão acinzentado.
Infelizmente, o Internet Explorer, incluindo o IE 9, não o suporta.
Já existem alguns scripts de simulador de espaço reservado. Eles normalmente funcionam colocando o texto padrão no campo de entrada, dando uma cor cinza e removendo-o novamente assim que você focaliza o campo de entrada.
A desvantagem dessa abordagem é que o texto do espaço reservado está no campo de entrada. Portanto:
- scripts não podem verificar facilmente se um campo de entrada está vazio
- o processamento no servidor deve verificar o valor padrão, para não inserir o espaço reservado no banco de dados.
Eu gostaria de ter uma solução em que o texto do espaço reservado não esteja na entrada em si.
O melhor da minha experiência é https://github.com/mathiasbynens/jquery-placeholder (recomendado por html5please.com ). http://afarkas.github.com/webshim/demos/index.html também possui uma boa solução entre sua muito mais extensa biblioteca de polyfills.
fonte
Com uma implementação do jQuery, você pode facilmente remover os valores padrão na hora de enviar. Abaixo está um exemplo:
Sei que você está procurando uma sobreposição, mas talvez prefira a facilidade dessa rota (agora sabendo o que escrevi acima). Nesse caso, escrevi isso para meus próprios projetos e funciona muito bem (requer jQuery) e leva apenas alguns minutos para ser implementado em todo o site. Ele oferece texto em cinza a princípio, cinza claro quando em foco e preto ao digitar. Ele também oferece o texto do espaço reservado sempre que o campo de entrada estiver vazio.
Primeiro, configure seu formulário e inclua seus atributos de espaço reservado nas tags de entrada.
Apenas copie esse código e salve-o como placeholder.js.
Para usar em apenas uma entrada
É assim que eu recomendo que você o implemente em todos os campos de entrada do seu site quando o navegador não suporta atributos de espaço reservado HTML5:
fonte
Depois de tentar algumas sugestões e ver os problemas no IE, aqui está o que funciona:
https://github.com/parndt/jquery-html5-placeholder-shim/
O que eu gostei - você apenas inclui o arquivo js. Não há necessidade de iniciá-lo ou qualquer coisa.
fonte
A solução a seguir liga-se à entrada de elementos de texto com o atributo placeholder. Emula um comportamento de espaço reservado apenas para o IE e limpa o campo de valor da entrada no envio, se não for alterado.
Adicione esse script e o IE parece oferecer suporte a espaços reservados HTML5.
fonte
Eu sugiro uma função simples:
E para usá-lo, chame-o desta maneira:
fonte
Eu encontrei uma solução bastante simples usando este método:
http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
é um hack jquery, e funcionou perfeitamente em meus projetos
fonte
Você pode usar :
fonte
Simples assim:
fonte
Eu escrevi um plugin jquery para resolver este problema .. é grátis ..
Diretório JQuery:
http://plugins.jquery.com/project/kegles-jquery-placeholder
Site: www.kegles.com.br/jquery-placeholder/
fonte
Eu vim com um script JQuery de espaço reservado simples que permite uma cor personalizada e usa um comportamento diferente de limpar entradas quando focado. Ele substitui o espaço reservado padrão no Firefox e Chrome e adiciona suporte ao IE8.
fonte
Placeholdr é um polyfill de jQuery de marcador de espaço super leve que eu escrevi. É menos de 1 KB minificado.
Assegurei-me de que esta biblioteca abordasse suas duas preocupações:
O Placeholdr estende a função jQuery $ .fn.val () para evitar valores de retorno inesperados quando o texto está presente nos campos de entrada como resultado do Placeholdr. Portanto, se você se ater à API do jQuery para acessar os valores dos seus campos, não precisará alterar nada.
O espaço reservado ouve os envios de formulário e remove o texto do espaço reservado dos campos para que o servidor simplesmente veja um valor vazio.
Novamente, meu objetivo com o Placeholdr é fornecer uma solução simples para o problema do espaço reservado. Entre em contato no Github se houver mais alguma coisa que você gostaria de ter no suporte do Placeholdr.
fonte
Para inserir o plug-in e verificar se o ie é perfeitamente funcionadojquery.placeholder.js
fonte
Aqui está uma função javascript pura (não é necessário o jquery) que criará espaços reservados para o IE 8 e abaixo e também funcionará para senhas. Ele lê o atributo de espaço reservado HTML5 e cria um elemento de abrangência por trás do elemento do formulário e torna transparente o plano de fundo do elemento do formulário:
fonte
NOTA: o autor deste polyfill afirma que "funciona em praticamente qualquer navegador que você possa imaginar", mas de acordo com os comentários que não são verdadeiros para o IE11, no entanto, o IE11 tem suporte nativo, assim como a maioria dos navegadores modernos
O Placeholders.js é o melhor polyfill de espaço reservado que eu já vi, é leve, não depende do JQuery, cobre outros navegadores mais antigos (não apenas o IE) e tem opções para espaços reservados para ocultar na entrada e executar uma vez.
fonte
eu uso jquery.placeholderlabels . É baseado nisso e pode ser demonstrado aqui .
trabalha em ie7, ie8, ie9.
O comportamento imita o comportamento atual do firefox e chrome - onde o texto "espaço reservado" permanece visível no foco e só desaparece quando algo é digitado no campo.
fonte
Criei meu próprio plugin jQuery depois de ficar frustrado com o fato de os calços existentes ocultarem o espaço reservado, o que cria uma experiência de usuário inferior e também não corresponde à maneira como o Firefox, Chrome e Safari lidam com isso. Esse é especialmente o caso se você deseja que uma entrada seja focada quando uma página ou pop-up é carregada pela primeira vez, enquanto ainda mostra o espaço reservado até a inserção do texto.
https://github.com/nspady/jquery-placeholder-labels/
fonte