У меня есть два simple_form поля так:Рельсы формы: форма изменения поля из ранее выбранных полей
<%= f.input :ration_card ,as: :radio_buttons,collection: ["Yes","No"], input_html: {id: "rationcard"} %>
<%= f.input :rationcardNum , label: "Ration Card No." ,input_html: {id: "rationcard_no"} %>
Я хочу показать второе поле только тогда, когда пользователь выбирает «Да» для первого поля. Моего Jquery:
$(function(){
$("#rationcard").change(function(){
if ($("#rationcard").val()=="Yes"){
$("#rationcard_no").show();
} else {
$("#rationcard_no").hide();
}
})
})
Я могу увидеть файл JS включается в голове страницы.
генерируется HTML:
<div class="control-group radio_buttons optional family_ration_card">
<label class="radio_buttons optional control-label" for="rationcard">Ration card</label>
<div class="controls">
<label class="radio">
<input id="rationcard" class="radio_buttons optional" type="radio" value="Yes" name="family[ration_card]" checked="checked">
Yes
</label>
<label class="radio">
<input id="rationcard" class="radio_buttons optional" type="radio" value="No" name="family[ration_card]">
No
</label>
</div>
</div>
<div class="control-group string optional family_rationcardNum">
<label class="string optional control-label" for="rationcard_no">Ration Card No.</label>
<div class="controls">
<input id="rationcard_no" class="string optional" type="text" value="DGFR12" size="50" name="family[rationcardNum]">
</div>
</div>
Но динамические поля не работают. Что здесь не так?
Или предложите лучший способ достичь этого.
форма загружена с помощью Ajax? –
Уверены ли ошибки в файле 'js' перед объявлением этой функции jQuery? Я бы поставил «предупреждение», чтобы увидеть, всплывает ли он, чтобы убедиться, что он выполняется. Также проверьте «источник страницы просмотра», чтобы убедиться, что он выглядит правильно. – lurker
Не ставить это как ответ, потому что я не совсем уверен, но если я правильно помню, «значение» этого флажка не изменится, когда вы нажмете на него (попробуйте посмотреть его через веб-отладчик и посмотреть, изменится ли он когда вы нажмете его). Однако если вы делаете '$ (" # rationcard "). Prop (" checked ")' (возвращает логическое значение), которое будет меняться каждый раз (опять же, тест в веб-отладчике). – MrDanA