Используемые рамки: cakePHP 2.x
В файле php следующие два поля ввода будут клонированы на странице HTML с помощью кода javascript / jQuery, в зависимости от количества свойств (максимум: 6):
<?php echo $this->Form->input('Prop.0.bills', array('label' => false, 'class' => '', 'disabled' => false)); ?>
<?php echo $this->Form->input('Prop.0.no_bills', array('type' => 'checkbox', 'label' => false,'div' => false)); ?>
На соответствующей HTML-странице, в случае двух свойств, код будет:
<input id="Prop1Bills" class="" type="text" name="data[Prop][1][bills]" original-title="">
<input id="Prop1NoBills" class="" type="checkbox" value="1" name="data[Prop][1][no_bills]" original-title="">
<input id="Prop2Bills" class="" type="text" name="data[Prop][2][bills]" original-title="">
<input id="Prop2NoBills" class="" type="checkbox" value="1" name="data[Prop][2][no_bills]" original-title="">
Что мне нужно?
Мне нужен код .js, чтобы добавить отключенный атрибут (со значением = 0) к первому входному тексту, когда флажок установлен.
Я пробовал двумя способами (используя ‘data-name’, добавленное для теста в массиве второго php echo: ‘name’ => ‘PropNoBills’), оба неверны (если флажок установлен, ввод текста не выполняется ‘) t становится отключенным со значением = 0):
/ * Первый путь * /
$(document).ready(function () {
for (var i = 0; i <= 6; i++) {
if ($('input[data-name="PropNoBills"]').is(':checked')){
$('#Prop'+i+'Bills').attr('disabled', true).val('0');
} else {
$('#Prop'+i+'Bills').attr('disabled', false);
}
} }); // end ready
/ * Второй способ * /
$('input[data-name="PropNoBills"]').each(function() {
for (var i = 0; i <= 6; i++) {
if ($(this).is(':checked')){
$('#Prop'+i+'Bills').attr('disabled', true).val('0');
} else {
$('#Prop'+i+'Bills').attr('disabled', false);
}
} });
Я предпочитаю использовать идентификатор #Prop …, поэтому я попробовал с:
function check_bills(){
for (var i = 0; i <= 6; i++) {
if ($('#Prop[i]NoBills').is(':checked')){
$('#Prop'+i+'Bills').attr('disabled', true).val('0');
} else {
$('#Prop'+i+'Bills').attr('disabled', false);
}
} }
Я думаю, что проблема относится к + i + [i] {‘i’ относится к номеру клона свойств} в файле .js.
Спасибо
Задача ещё не решена.
Других решений пока нет …