我的单选按钮看起来像这样
<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
。
现在当我点击收音机时,按钮下拉菜单既没有启用也没有禁用,任何想法我在这里做错了什么?
答案 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()