Переключатель Jquery о том, как отключить текстовое поле, не затрагивая других - PullRequest
0 голосов
/ 26 сентября 2018

Мне нужна помощь.У меня возникла проблема в jquery, что, когда вы нажимаете переключатель, это не должно быть затронуто другими.

Это мой код:

<script>
    jQuery("input[type='radio']").change(function(){
        if(jQuery(this).val() == "Not Vote Anyone")
        {
            jQuery( ".txtfield" ).prop( "disabled", false );
        } else {
            jQuery( ".txtfield" ).prop( "disabled", true );
        }
    });
</script>

Сайт:

http://devsrver.com/

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Вы должны добавить атрибут разницы в каждый раздел различий, такой как A_Director, B_Director, C_Director.Но тот же атрибут в том же разделе.Например:

<input type='radio' groupsection='A_Direction'>Note Vote Anymore
<input type='radio' groupsection='A_Direction'>John Doe
<input type='radio' groupsection='A_Direction'>Jane Doe
<input type='text' groupsection='A_Direction'> 

<input type='radio' groupsection='B_Direction'>Note Vote Anymore
<input type='radio' groupsection='B_Direction'>John Doe
<input type='radio' groupsection='B_Direction'>Jane Doe
<input type='text' groupsection='B_Direction'> 

и JavaScript должен быть:

<script>
    jQuery("input[type='radio']").change(function(){
        var groupsection = $(this).attr('groupsection');
        if(jQuery(this).val() == "Not Vote Anyone")
        {
            jQuery( ".txtfield[groupsection='"+groupsection+"']" ).prop( "disabled", false );
        } else {
            jQuery( ".txtfield[groupsection='"+groupsection+"']" ).prop( "disabled", true );
        }
    });
</script>
0 голосов
/ 26 сентября 2018

Я обнаружил в вашем коде 2 проблемы.

  1. input[type='radio'] затронет все radio.

  2. jQuery( ".txtfield" ).prop повлияетвсе поля ввода имеют класс txtfield


Есть несколько других хороших способов сделать это, если вы согласны изменить html и css, но это простое изменение в коде js.


    jQuery("input[name='radio-743']").change(function(){
       if(jQuery(this).val() == "Not Vote Anyone"){
          jQuery("input[name='RifleDirectorName']").prop( "disabled", false );
       } else {
          jQuery("input[name='RifleDirectorName']").prop( "disabled", true );
       }
    });

Точно так же вы должны сделать это для radio-744 и radio-745

jQuery("input[name='radio-744']").change(function(){
           if(jQuery(this).val() == "Not Vote Anyone"){
              jQuery("input[name='PistolDirectorName']").prop( "disabled", false );
           } else {
              jQuery("input[name='PistolDirectorName']").prop( "disabled", true );
           }
        });




 jQuery("input[name='radio-745']").change(function(){
               if(jQuery(this).val() == "Not Vote Anyone"){
                  jQuery("input[name='ShotgunDirectorName']").prop( "disabled", false );
               } else {
                  jQuery("input[name='ShotgunDirectorName']").prop( "disabled", true );
               }
            });
0 голосов
/ 26 сентября 2018

Если вы используете селектор input[type='radio'], это повлияет на все переключатели.Вы можете попробовать вот так:

<script>
    jQuery("input[name='radio-743']").change(function(){
       if(jQuery(this).val() == "Not Vote Anyone"){
          jQuery( ".txtfield" ).prop( "disabled", false );
       } else {
          jQuery( ".txtfield" ).prop( "disabled", true );
       }
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...