valor inesperado para $ (this+': verificado'). Val ()
-
18-09-2019 - |
Pergunta
Eu tenho um conjunto de radiobutton chamado 'DayPattern'. Clicar em ele deve permitir os irmãos Formfield do membro verificado e desativar os irmãos FormField (se houver) de outros membros. Estou tentando comparar o valor do campo verificado com o valor do botão de rádio atual, mas o valor do campo verificado está retornando um número inteiro em vez da sequência esperada do atributo de valor do botão de rádio.
Onde está conseguindo esse número? Como posso consertar e existe uma abordagem melhor?
Obrigado
Função de problemas:
$.fn.setActiveState=function(){
var c=$(this+':checked').val();//c=3 instead of 'everyday' OR 'everywday'. WHY?
this.each(function(){
alert(c + ' and '+ $(this).val());//3 and 'everyday' OR 'everywday'
if($(this).val()== c){
$(this).siblings(':input').removeAttr("disabled");
}else{
$(this).siblings(':input').attr('disabled',true);
}
});
}
Html
<label>
<input type='radio' name='daypattern' value='everyday' checked='checked'/>Every
<input type='text'class='numtext' name='day_increment' value='1'/> day(s)
</label>
<label>
<input type='radio' name='daypattern' value='everywday'/>Every weekday
</label>
Chamada de função de problema em $(document).ready
:
$("input[name='daypattern']").setActiveState();
Solução
Tente mudar para:
$(this).filter(':checked').val();
Outras dicas
Tentar
var c=$(':checked', this).val();//
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow