1

更改DROPDOWN 1时,需要获取 id 并使用 JQuery 从DROPDOWN 2中自动选择一个选项并使其只读。

下拉 1 ===========

<div id="div_post_code" class="row text-label w250 inline " style="display: block;">
<?php echo CHtml::activeLabelEx($cssAtapsClient, 'suburb_id')."\n";?>
<?php $this->widget('application.components.SAutoComplete', array('width'=>200,
                'model'=>$cssAtapsClient, 'parseData'=>true, 'matchContains'=>true,
                'attribute'=>'suburb_id', 'data'=>$postCode, 'ddindicator'=>true,
                'max'=>50,
                'multipleSeparator'=>false
              )); ?>        
</div>

下拉 2 ===========

<div id="div_state" class="row text-label w250 inline " style="display: block;">
    <?php echo CHtml::activeLabelEx($cssAtapsClient, 'state_id') ?>
    <?php echo CHtml::activeDropDownList($cssAtapsClient, 'state_id', CHtml::listData($stateList, 'id', 'state'), array('empty'=>'- - Select State - -','id'=>'state_id', 'class'=>'long')); ?> 
</div>

在此处输入图像描述

问题

在 js 中使用“change()”函数没有按预期工作。

//将状态加载到下拉列表2

   $('#CSSAtapsClient_suburb_id_input').change(function() {

}

编辑 我创建了一个 jsfiddle http://jsfiddle.net/wtYW6/4/

截图 -> 通过 firbug 获得 在此处输入图像描述

4

1 回答 1

2

好的,这是修改后的代码

    $('#postcode').change(function () {
    if ($('#postcode').val() == 0) {
        $('#state').prop("disabled", true);
    } else {
        $('#state').prop("disabled", false);
    }
});

你错过了一些东西......

1)你选择使用Id和不使用# 应该 $('postcode')$('#postcode')

2) 它$('#postcode').val()与非$('postcode').val

3) 并且不需要()in$('#state').prop("disabled", true)()

这是工作的jsfiddle

于 2013-09-18T06:28:40.357 回答