Pergunta

É uma boa prática anexar um atributo inexistente a um elemento html para usá-lo em jquery.Por exemplo

<input type="text" valrule="someregexstring" />

então simplesmente use jquery para selecionar todos os elementos que contêm um atributo chamado valrule e analisar a string regex.

Isto é proibido no que diz respeito aos padrões de programação e às melhores práticas?

Foi útil?

Solução

Você deve usar o prefixo data-<myAttribute>.É suportado por HTML5, outros navegadores irão ignorá-lo e você pode acessá-lo facilmente com jQuery usando o .data() método.

<input  id="myInput" type="text" data-MySuperMassiveAttribute="Awesome"/>

e você pode recuperar essas informações assim:

var howAmI = $('#myInput').data('MySuperMassiveAttribute');
alert(howAmI); // now everybody knows how awesome you are ;-)

Outras dicas

Use o prefixo de dados HTML5 para novos atributos como este:

<input type="text" data-valrule="someregexstring" />

É HTML 5 válido.

http://ejohn.org/blog/html-5-data-attributes/

Você definitivamente pode.Embora o HTML5 tenha introduzido o que é chamado dados- atributos, permitindo definir atributos não padrão para elementos de maneira padrão.

Você simplesmente prefixa os nomes dos atributos com data-

<input type="text" data-valrule="someregexstring" />

Embora isso tenha sido introduzido no HTML5, você ainda pode usá-lo com documentos para HTML4.


Usando jQuery (1.4.3+), o dados- atributos podem ser acessados ​​com .dados() - ou através .attr().

Eu pessoalmente não faria isso.Alguns navegadores ignoram atributos "não existentes" ao analisar HTML, portanto, esses atributos não seriam salvos no DOM da página do navegador.Quando os seletores jQuery são executados, eles podem não encontrar este atributo.

Se você tiver garantia de execução em navegadores compatíveis com HTML5, poderá usar HTML5 data- prefixo para seus atributos, por exemplo.

<input type="text" data-valrule="someregexstring" />

No entanto, isso ainda pode não funcionar se você executar em navegadores mais antigos.Por exemplo, quase metade dos nossos clientes está usando o IE7 sem planos de atualização (acompanhando a velocidade do governo).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top