cakePHP 2.x使用js选中复选框时禁用输入文本

时间:2018-07-26 00:02:51

标签: javascript php cakephp-2.0 disabled-input

使用的框架:cakePHP 2.x

在php文件中,接下来的两个输入字段将通过javascript / jQuery代码在HTML页面中克隆,具体取决于属性的数量(最大为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)添加到第一个输入文本中。 我已经尝试了两种方式(使用第二个php echo数组中的测试添加的“数据名称”:“名称” =>“ 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);
    }
} });

我更喜欢使用ID #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);
    }
} }

我认为问题与.js文件中的+ i + [i] {'i'代表属性的克隆编号}有关。 谢谢

0 个答案:

没有答案