Ingin mengambil nilai tombol radio terdekat yang diperiksa menggunakan jquery:

Cuplikan Kode Saya:

Cuplikan Kode HTML:

<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>

Cuplikan Kode jQuery:

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

Saya mencoba cuplikan kode di atas tetapi saya mendapatkan nilai peringkat "tidak ditentukan" pada peringatan

Tolong sarankan saya pernyataan yang tepat untuk mendapatkan nilai tombol radio yang diperiksa.

Saya tidak ingin menerapkan acara tombol radio "onchange" karena beberapa kondisi.

0
Anjali Patil 31 Oktober 2019, 09:31

2 jawaban

Jawaban Terbaik

JQuery closest digunakan untuk menanyakan ancestors , dalam kasus Anda, Anda memerlukan tag anak. Anda bisa menggunakan children sebagai gantinya

$('.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>
1
Bilal Siddiqui 31 Oktober 2019, 06:43

Coba kode ini:

$('.rating').click(function(){
    var rating = $(this).find("input[name = 'rating']:checked").val();
})  
0
bharat parmar 31 Oktober 2019, 06:42