在单选按钮上启用下拉菜单 select

enable dropdown on radio button select

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

<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的下拉菜单,而Vise versa

这是我的 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

现在,当我点击收音机按钮时,下拉菜单既未启用也未禁用,知道我在这里做错了什么吗?

如果我没记错的话,attr 在这里不起作用。

您需要使用 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()