在单选按钮上启用下拉菜单 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()
我的单选按钮看起来像这样
<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()