Работа с RadioButtonList в UserControl в jQuery

#jquery

#jquery

Вопрос:

Ниже приведен код в jQuery.

 $(document).ready(function(){
$("[id^='rdlAvailability_'][type='radio']").each(function () {
    $(this).change(function(){
        var radioBtnId = this.id;
        var $this = $(this);
        radconfirm('Are you sure you want to select this slot?', function(arg){
            if (arg == true) {
                $find('<%= FindControl("txtAvailability").ClientID %>').set_value("");
            }    
            else {
                $this.siblings('input').prop('checked',true);
                var rdlAvailability = document.getElementById(radioBtnId);
                rdlAvailability.checked = false;
                $this.prop('checked', false);
            }
        }, 300, 100,"");
    })
});
  

});

Это разметка для доступности rdlAvailability для понедельника

 <table id="ctl00_ContentPlaceHolder1_MyAvailability_MyAvailabilityMonday_rdlAvailability" class="radio1" border="0" style="color: #004B59; font-size: 11px; font-family: Arial, Sans-serif; text-align: justify">
                        <tr>
                            <td><span disabled="disabled"><input id="ctl00_ContentPlaceHolder1_MyAvailability_MyAvailabilityMonday_rdlAvailability_0" type="radio" name="ctl00$ContentPlaceHolder1$MyAvailability$MyAvailabilityMonday$rdlAvailability" value="AVL01" disabled="disabled" /><label for="ctl00_ContentPlaceHolder1_MyAvailability_MyAvailabilityMonday_rdlAvailability_0">Slot 0</label></span></td>
                        </tr><tr>
                            <td><input id="ctl00_ContentPlaceHolder1_MyAvailability_MyAvailabilityMonday_rdlAvailability_1" type="radio" name="ctl00$ContentPlaceHolder1$MyAvailability$MyAvailabilityMonday$rdlAvailability" value="AVL02" /><label for="ctl00_ContentPlaceHolder1_MyAvailability_MyAvailabilityMonday_rdlAvailability_1">Slot 1</label></td>
                        </tr><tr>
                            <td><input id="ctl00_ContentPlaceHolder1_MyAvailability_MyAvailabilityMonday_rdlAvailability_2" type="radio" name="ctl00$ContentPlaceHolder1$MyAvailability$MyAvailabilityMonday$rdlAvailability" value="AVL03" /><label for="ctl00_ContentPlaceHolder1_MyAvailability_MyAvailabilityMonday_rdlAvailability_2">Slot 2</label></td>
                        </tr><tr>
                            <td><input id="ctl00_ContentPlaceHolder1_MyAvailability_MyAvailabilityMonday_rdlAvailability_3" type="radio" name="ctl00$ContentPlaceHolder1$MyAvailability$MyAvailabilityMonday$rdlAvailability" value="AVL04" checked="checked" /><label for="ctl00_ContentPlaceHolder1_MyAvailability_MyAvailabilityMonday_rdlAvailability_3">Slot 3</label></td>
                        </tr>
                    </table>
  

Как я могу заставить код jQuery работать только один раз при нажатии в понедельник или в любой другой день. Я дал разметку для понедельника. Теперь я получаю 4 сообщения с подтверждением. Он не улавливает правильный идентификатор доступности rdlAvailability .

Ответ №1:

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

 $("[id^='rdlAvailability_'][type='radio']").on("change", function()
{
  // your code here
});