Quero que a caixa de pesquisa na minha página da Web exiba a palavra "Pesquisar" em itálico cinza. Quando a caixa recebe o foco, ela deve se parecer com uma caixa de texto vazia. Se já houver texto nele, ele deverá ser exibido normalmente (preto, sem itálico). Isso me ajudará a evitar confusão ao remover o rótulo.
BTW, esta é uma pesquisa Ajax na página , por isso não possui botão.
javascript
html
Michael L Perry
fonte
fonte
Respostas:
Outra opção, se você está feliz por ter esse recurso apenas para navegadores mais recentes, é usar o suporte oferecido pelo atributo de espaço reservado do HTML 5 :
Na ausência de estilos, no Chrome isso se parece com:
Você pode experimentar demos aqui e no HTML5 Placeholder Styling with CSS .
Certifique-se de verificar a compatibilidade do navegador desse recurso . Suporte no Firefox foi adicionado na versão 3.7. Chrome está bem. O Internet Explorer adicionou suporte apenas em 10. Se você segmentar um navegador que não suporta espaços reservados de entrada, poderá usar um plug-in jQuery chamado jQuery HTML5 Placeholder e, em seguida, basta adicionar o seguinte código JavaScript para habilitá-lo.
fonte
Isso é conhecido como marca d'água da caixa de texto e é feito via JavaScript.
ou se você usa jQuery, uma abordagem muito melhor:
fonte
Você pode definir o espaço reservado usando o
placeholder
atributo em HTML ( suporte ao navegador ). Ofont-style
ecolor
pode ser alterado com CSS (embora o suporte ao navegador seja limitado).fonte
Você pode adicionar e remover uma classe CSS especial e modificar o valor de entrada
onfocus
/onblur
com JavaScript:Em seguida, especifique uma classe de dica com o estilo desejado em seu CSS, por exemplo:
fonte
A melhor maneira é conectar seus eventos JavaScript usando algum tipo de biblioteca JavaScript, como jQuery ou YUI, e colocar seu código em um arquivo .js externo.
Mas se você deseja uma solução rápida e suja, esta é sua solução HTML embutida:
Atualizado : Adicionado o material de coloração solicitado.
fonte
Eu publiquei uma solução para isso no meu site há algum tempo. Para usá-lo, importe um único
.js
arquivo:Em seguida, anote as entradas que você deseja obter dicas com a classe CSS
hintTextbox
:Mais informações e exemplos estão disponíveis aqui .
fonte
Aqui está um exemplo funcional com o cache da biblioteca do Google Ajax e alguma mágica do jQuery.
Este seria o CSS:
Este seria o código JavaScript:
E este seria o HTML:
Espero que seja o suficiente para fazer você se interessar pelos GAJAXLibs e pelo jQuery.
fonte
Agora ficou muito fácil. Em html, podemos atribuir o atributo placeholder para elementos de entrada .
por exemplo
verifique para obter mais detalhes: http://www.w3schools.com/tags/att_input_placeholder.asp
fonte
Para usuários do jQuery: o link do jQuery do naspinski parece quebrado, mas tente este: http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/
Você recebe um tutorial gratuito sobre o plugin jQuery como um bônus. :)
fonte
Eu achei o plugin jQuery jQuery Watermark melhor do que o listado na resposta superior. Por que melhor? Porque suporta campos de entrada de senha. Além disso, definir a cor da marca d'água (ou outros atributos) é tão fácil quanto criar uma
.watermark
referência no seu arquivo CSS.fonte
Isso é chamado de "marca d'água".
Encontrei o plugin jQuery marca d'água jQuery , que, diferentemente da primeira resposta, não requer configuração extra (a resposta original também precisa de uma chamada especial antes do envio do formulário).
fonte
Use o Notificador de Formulário jQuery - é um dos plugins jQuery mais populares e não sofre com os bugs de algumas das outras sugestões do jQuery aqui (por exemplo, você pode estilizar livremente a marca d'água, sem se preocupar se ela será salva no base de dados).
O jQuery Watermark usa um único estilo CSS diretamente nos elementos do formulário (notei que as propriedades de tamanho de fonte CSS aplicadas à marca d'água também afetavam as caixas de texto - não o que eu queria). A vantagem do jQuery Watermark é que você pode arrastar e soltar texto nos campos (o jQuery Form Notifier não permite isso).
Outra sugestão sugerida por outras pessoas (a digitalbrush.com) enviará acidentalmente o valor da marca d'água para o seu formulário, por isso recomendo vivamente.
fonte
Use uma imagem de plano de fundo para renderizar o texto:
Então tudo que você precisa fazer é detectar
value == 0
e aplicar a classe correta:E o código JavaScript do jQuery se parece com o seguinte:
fonte
Você pode facilmente ler a caixa "Pesquisar" e, quando o foco for alterado, o texto será removido. Algo assim:
<input onfocus="this.value=''" type="text" value="Search" />
Obviamente, se você fizer isso, o próprio texto do usuário desaparecerá quando ele clicar. Então você provavelmente deseja usar algo mais robusto:
fonte
Quando a página é carregada pela primeira vez, faça com que a Pesquisa apareça na caixa de texto, colorida em cinza, se você desejar.
Quando a caixa de entrada receber foco, selecione todo o texto na caixa de pesquisa para que o usuário possa começar a digitar, o que excluirá o texto selecionado no processo. Isso também funcionará bem se o usuário desejar usar a caixa de pesquisa uma segunda vez, pois não precisará destacar manualmente o texto anterior para excluí-lo.
fonte
Gosto da solução do "Knowledge Chikuse" - simples e clara. Só é necessário adicionar uma chamada para desfocar quando o carregamento da página estiver pronto, o que definirá o estado inicial:
fonte
Você deseja atribuir algo assim ao onfocus:
e isso para onblur:
(Você pode usar algo um pouco mais inteligente, como uma função de estrutura, para alternar o nome da classe, se desejar.)
Com alguns CSS como este:
fonte
Estou usando uma solução javascript simples de uma linha que funciona muito bem. Aqui está um exemplo para a caixa de texto e para a área de texto:
a única "desvantagem" é validar em $ _POST ou na validação Javascript antes de fazer qualquer coisa com o valor do campo. Ou seja, verificar se o valor do campo não é "Texto".
fonte
fonte
A tag simples 'exigida' em HTML é útil.
Especifica que um campo de entrada deve ser preenchido antes de enviar o formulário ou pressione o botão enviar. Aqui está um exemplo
fonte
Usuário AJAXToolkit de http://asp.net
fonte