Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde.
hoje tive que trocar meu Jquery no sistema
usava o 1.4 (atrasado eu sei mas sempre funcionou muito bem) mas tive que implementar um datepicker que soh funciona com o jquery 1.8.1
pois bem. eu coloquei o jquery e o calendario funcionou.
contudo, outras funcoes pararam de funcionar.
tenho em uma validacao de formulario uma verificacao inArray que quando é executada acontece esse o seguinte erro:
Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
não tenho ideia do que posso fazer.
sem esse jquery o maldito calendario nao funciona...
e eu nao posso ficar sem esse inArray da validacao que faco...
alguem teve um problema parecido?
como foi solucionado?
nao encontrei nada parecido na internet
ola kikombat, entao. o caso é que eu diretamente nao estou chamando a funcao toLowerCase que está notificada no erro.
ela esta sendo chamada pelo proprio jQuery. e pra ser sincero eu nem sei quando ou porque.
simplesmente chamo uma jQuery.inArray na minha funcao. e nesse momento acontece esse erro. somente para o jquery mais importante. mas vou analisar sua dica mais detalhadamente e ver se consigo adaptar meu js aqui...
afff.. desde ontem nesse problema..
correção;
o erro nao está na execucao da inArray, e sim na outra comparacao.
na $(element).val();
o que acontece. eu serializo meu form. e para cada componente eu confiro se tem valor =="" e se ele esta na lista de obrigatorios que eh um array, por isso o uso da inArray. portanto tenho a seguinte estrutura;
$.each($(form).serializeArray(), function(index, element) {
if (jQuery.inArray($(element).attr("name"), campos_obrigatorios)>=0 && $(element).val() === "") {
//se entra faco as mensagens
}
});
descobri que o erro tem acontecido na $(element).val(), e nao na inArray.
nao sei o porque, mas ta acontecendo.. pois bem troquei para element.value e deu certo.
agora o receio é nos outros lugares que eu utilizei a .val(). será que terei problema em todos?
uma solução seria usar a phpjs que possui a maioria das funções do php portadas para js.
vai encontrar a função strtolower e muito mais
http://phpjs.org/functions/strtolower/