2015-10-07 2 views
0

Я заставляю себя орехами, пытаясь отключить переключатель в форме, которая генерируется динамически. Это код, который я использую. То, что бросает ошибку, - это имя идентификатора из-за всех скобок в нем. Я попытался убежать от них, но безрезультатно.Отключить радиокнопку с помощью jQuery в динамической форме

Сценарий:

$(document).ready(function() { 

$("div.property_options_select input[id='#akID\\[114\\]\\[atRadioOptionID\\]\\[\\]1']").on('click',function(){ 
    $("input:radio").attr('disabled',true); 
    }); 
}); 

HTML-:

<div class="property_options_select"> 

      <label class="radio"> 
       <input type="radio" name="akID[114][atRadioOptionID][]" id="akID[114][atRadioOptionID][]1" value="17" class="ccm-input-radio" />     9:00AM - 11:00AM    </label> 


      <label class="radio"> 
       <input type="radio" name="akID[114][atRadioOptionID][]" id="akID[114][atRadioOptionID][]2" value="18" class="ccm-input-radio" />     9:30AM - 11:30AM    </label> 

Кто-нибудь есть предложение, как целевой, что первый переключатель?

+0

Почему вы не смотрите радиокнопок на там имя класса 'куб.см-вход-radio'. Еще одно предложение, старайтесь избегать использования селектора атрибутов как более медленного, чем селектор класса, который используется напрямую. – dreamweiver

ответ

1

Вы можете настроить таргетинг на первого ребенка с помощью селектора :first-child так:

$("input:radio:first-child").attr("disabled","disabled"); 

http://jsfiddle.net/dajzvysg/

+0

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

0

Вы пытались с двойной обратной косой черты?

$('#akID\\[114\\]\\[atRadioOptionID\\]\\[\\]1').prop('disabled', true); 
+0

Извините. Когда я отправил комментарий, я пропустил кнопку кода. У меня были двойные слэши. Кажется, я нашел, где проблема. – user2033755

+0

Привет Пато. Я попробовал ваше решение. Это победитель! – user2033755

0

Вы должны использовать двойную косую черту в селекторе jquery.

$(document).ready(function() { 
     $("div.property_options_select input[id='#akID\\[114\\]\\[atRadioOptionID\\]\\[\\]1']").on('click',function(){ 
      $("input:radio").attr('disabled',true); 
     }); 
    }); 
0

Вам не нужно избегать скобок. Вам просто нужно удалить #.

Ваш селектор будет $("div.property_options_select input[id='akID[114][atRadioOptionID][]1']")

https://jsfiddle.net/3h4jpm1e/

Смежные вопросы