anoter tıklanan öğeye dayalı en yakın öğeyi bulun Yeni satır ekleyebilir, satır silebilirsiniz dinamik bir form var. 2 .row
s olduğuJavascript
// HTML
<div class="row">
<div class="col-xs-4">
<ul>
<li><input type="checkbox"></li>
<li><input class="landmark" type="checkbox" value="4" name="patient[block_procedure_part2_notes_attributes][0][monitoring_device_ids][]" id="patient_block_procedure_part2_notes_attributes_0_monitoring_device_ids_4" /></li>
<li><input type="checkbox"></li>
<li><input type="checkbox"></li>
</ul>
</div>
<div class="col-xs-8">
<ul>
<li><input type="checkbox"></li>
<li><input class="us_image" type="radio" value="clear" checked="checked" name="patient[block_procedure_part2_notes_attributes][0][us_image]" id="patient_block_procedure_part2_notes_attributes_0_us_image_clear" /></li>
<li><input class="us_image" type="radio" value="clear" checked="checked" name="patient[block_procedure_part2_notes_attributes][0][us_image]" id="patient_block_procedure_part2_notes_attributes_0_us_image_poor" /></li>
<li><input type="checkbox"></li>
</ul>
</div>
</div>
<div class="row">
<div class="col-xs-4">
<ul>
<li><input type="checkbox"></li>
<li><input class="landmark" type="checkbox" value="4" name="patient[block_procedure_part2_notes_attributes][1][monitoring_device_ids][]" id="patient_block_procedure_part2_notes_attributes_1_monitoring_device_ids_4" /></li>
<li><input type="checkbox"></li>
<li><input type="checkbox"></li>
</ul>
</div>
<div class="col-xs-8">
<ul>
<li><input type="checkbox"></li>
<li><input class="us_image" type="radio" value="clear" checked="checked" name="patient[block_procedure_part2_notes_attributes][1][us_image]" id="patient_block_procedure_part2_notes_attributes_1_us_image_clear" /></li>
<li><input class="us_image" type="radio" value="clear" checked="checked" name="patient[block_procedure_part2_notes_attributes][1][us_image]" id="patient_block_procedure_part2_notes_attributes_1_us_image_poor" /></li>
<li><input type="checkbox"></li>
</ul>
</div>
</div>
// Javascript
var landmark = $('input.landmark');
landmark.change(function(event) {
var usImageOptions = $(event.target).closest('input.us_image');
if (landmark.prop('checked')) {
resetInputs(usImageOptions);
controlFormSub();
disableInputs(usImageOptions, true);
} else {
disableInputs(usImageOptions, false);
}
});
görebilirsiniz: İşte kod. Ekleme düğmesiyle daha fazla satır eklenebilir veya kaldır düğmesiyle kaldırılabilir.
Burada, kontrol edilen en yakın .landmark
numarasına karşılık gelen usImageOptions
radyo düğmelerini devre dışı bırakmaya çalışıyorum. 1 .row
numaralı telefondan .landmark
işaretliyse, 1 .row
ürününün .usImageOptions
temizlenmiş ve devre dışı bırakılmalıdır. 2. .row
, sağlam olmalıdır.
Diğer sınıflara göre bulmaya isteksizim çünkü eğer değiştiyse, bu kod kırılacaktı.
Aynı satır içinde .usImageOptions
seçmek için sayısız yolu denedim ama yapamadı. Ne yapmalıyım? jQuery kullanıyorsanız
Diğer sınıflara güvenmeden yapabilir miyim? Çünkü işaretleme değişirse, bu betik bozulur. – Victor
Elbette. Sınıfları tamamen göz ardı ederek, her zaman ': onay kutusu 've': radyo'ya göre seçim yapabilirsiniz. Onların yorum atalarına nasıl ulaşacağını bildiğiniz sürece iyi olacaksınız. Yukarıdaki örnekteki 'DI'den' DI''ye 'UL’'den 'DI''ye gitmek için .parent(). Parent(). Parent(). Parent()' işlevini bile kullanabilirsiniz. – ajm
Her bölüm ayrıca .row'a sahip olduğu için, bulduğumda tüm 4 .usImageOptions içerir. Ama sadece aynı .row içinde en yakın 2'yi istiyorum. – Victor