启用下拉单选按钮

时间:2015-04-23 22:41:01

标签: jquery yii

我的单选按钮看起来像这样

<div id="removeModal-85934">
<input type="radio" name="AdsArchive[status]" checked="checked" value="1" id="AdsArchive_status-85934">

<input type="radio" name="AdsArchive[status]" value="2" id="AdsArchive_status2-85934">
</div>

选中AdsArchive_status-85934时,应启用ID为media-85934的下拉菜单,反之亦然

这是我的javascript

Yii::app()->clientScript->registerScript("delete-modal-js".$model->id, "
        $( \"#removeModal-$model->id input[name=AdsArchive[status]]\").click(function() {
            var val = $( \"#removeModal-$model->id input[name=AdsArchive[status]]:checked\").val();
            if (val === 1) {
                $(\"#media-$model->id\").attr('disabled',false);
                $(\"#date_sold-$model->id\").attr('disabled',false);
            }
            else {
                $(\"#media-$model->id\").attr('disabled',true);
                $(\"#date_sold-$model->id\").attr('disabled',true);
            }

        });
    ");

我在同一页面中有多个<div id="removeModal-85934">。其中85934是更改的ID。如果可能的话,我想要所有单选按钮的通用代码,所以我不必在点击时在我的jquery中添加$model->id

现在当我点击收音机时,按钮下拉菜单既没有启用也没有禁用,任何想法我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

如果我没记错,请不要使用此功能。

你需要使用prop(JSFiddle示例)。

以下是有关差异的更多信息: SO question concerning attr vs prop

至于完成所有操作的简单代码,请查看此JSFiddle

我做了很多改变,也许是太多了?

主要区别在于您无需在任何地方复制ID,只需复制数据ID和复选框:

<div class="removeModal" data-id="<id>">
    <input type="radio" name="AdsArchive[<id>]" checked="checked" value="1"/>Yes<br/>
    <input type="radio" name="AdsArchive[<id>]" value="2"/>No<br/>
</div>

修改 要避免“.parent()。parent()。parent()”问题,您可以使用

$(this).parents('.the-parent-element')

这将在给定选择器的父级内进行搜索。 例如,请检查JQuery's documentation about .parents()