хотите получить значение ближайшего внутреннего проверенного переключателя, используя jquery - PullRequest
0 голосов
/ 31 октября 2019

хочу получить значение ближайшей внутренней проверенной радиокнопки, используя jquery:

Мой фрагмент кода:

HTML Code Snippet:

<div class="rating" data-islogin="<?php echo $this->session->userdata('vhkrt_clt_logged_in')==TRUE ? 1:0;?>" data-userid="<?=$cltId?>" data-prodid="<?=$prod->prod_id?>">
    <input type="radio" id="star5_<?=$prod->prod_id?>" name="rating" value="5" />
    <label class = "full" for="star5_<?=$prod->prod_id?>"></label>
    <input type="radio" id="star4_<?=$prod->prod_id?>" name="rating" value="4" />
    <label class = "full" for="star4_<?=$prod->prod_id?>"></label>
</div>

jQuery Code Snippet:

$('.rating').click(function(){
    var rating = $(this).closest('input[name = rating]:checked').value;
    alert(rating); //getting "undefined"
})  

Я пытаюсь использовать приведенный выше фрагмент кода, но я получаю значение рейтинга "undefined" в предупреждении

Пожалуйста, предложите мне правильное утверждение, чтобы получить проверенное значение переключателя.

Я не хочу реализовывать событие "onchange" переключателя из-за некоторых условий.

Ответы [ 2 ]

1 голос
/ 31 октября 2019

jQuery closest используется для запроса предков, в вашем случае вам нужны дочерние теги. Вы можете использовать children вместо

$('.rating').click(function(){
    var rating = $(this).children(`input[name = 'rating']:checked`).val();
    alert(rating);
})  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="rating" data-islogin="<?php echo $this->session->userdata('vhkrt_clt_logged_in')==TRUE ? 1:0;?>" data-userid="<?=$cltId?>" data-prodid="<?=$prod->prod_id?>">
    <input type="radio" id="star5_<?=$prod->prod_id?>" name="rating" value="5" />
    <label class = "full" for="star5_<?=$prod->prod_id?>"></label>
    <input type="radio" id="star4_<?=$prod->prod_id?>" name="rating" value="4" />
    <label class = "full" for="star4_<?=$prod->prod_id?>"></label>
</div>
0 голосов
/ 31 октября 2019

Попробуйте этот код:

$('.rating').click(function(){
    var rating = $(this).find("input[name = 'rating']:checked").val();
})  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...