sexta-feira, 15 de outubro de 2010

Jquery, value e val

Estava buscando todos os inputs de classe 'obrigatorio' que estivessem vazios.

var vaziosInput = jQuery('div[id$=divSetup] input[value=""].obrigatorio').length;

Funciona muito bem no IE. Mas, no chrome e no firefox, sempre acusava que todos os campos estavam vazios.
Acontece que no Chrome e FF, o value continua vazio, mas o que é preenchido é o conteúdo do input.

Foi então que tentei assim:
            
var vaziosInput = 0;
jQuery('div[id$=divSetup]').find('input.obrigatorio').each(function(){
      if (jQuery(this).val() == ""){
           vaziosInput ++;
       }
});
Funciona. Mas não é tão bonito.



Update: http://bugs.jquery.com/ticket/7128
É um bug desta versão do Jquery, deve ser corrigido em breve.

Mas o código abaixo funciona bem:
jQuery('div[id$=divSetup] input.obrigatorio').filter('[value=""]').length;

Nenhum comentário:

Postar um comentário