我正在尝试编写一个脚本,该脚本遍历id为“toggleSelect”的所有元素。它应该添加一个onclick函数,根据相同元素的rel属性切换给定的选择框。
示例:
<input type="radio" name="button" value="toggle" id="toggleSelect" rel="example1">
<select name="example1" id="example1" DISABLED>
<option>Test Option</option>
<option>Test Option</option>
<option>Test Option</option>
</select>
所以基本上单击上面的单选按钮时,它应该有一个onclick功能,启用选择框“example1”。我得到一个“Uncaught SyntaxError:Unexpected token”。而且我不知道为什么。这是我的代码:
(function(){
$("#toggleSelect").on("click", function(){
idToggler = $(this).attr("rel");
if($("#" + idToggler)).is(":disabled")){
$("#" + idToggler.prop("disabled", false);
} else {
$("#" + idToggler.prop("disabled", true);
}
});
});
非常感谢任何帮助!
答案 0 :(得分:0)
您的代码中存在多个语法错误,请尝试以下代码
$(function() {
$("#toggleSelect").on("change", function() {
idToggler = $(this).attr("rel");
if ($("#" + idToggler).is(":disabled")) {
$("#" + idToggler).prop("disabled", false);
} else {
$("#" + idToggler).prop("disabled", true);
}
});
});
答案 1 :(得分:0)
试试这个:
$("#toggleSelect").change(function() {
idToggler = $(this).attr("rel");
if($("#" + idToggler).is(":disabled")){
$("#" + idToggler).removeAttr("disabled");
} else {
$("#" + idToggler).addAttr("disabled");
}
});
<强> Working Fiddle 强>
答案 2 :(得分:0)
这是问题
if($("#" + idToggler)).is(":disabled")){
↑
用
更改它if( $("#" + idToggler).is(":disabled") ){
这是问题
$("#" + idToggler.prop("disabled", false);
↑
应该是
$("#" + idToggler).prop("disabled", false);
和in else
$("#" + idToggler).prop("disabled", true);
,您需要在$
(function(){
符号
像这样
$(function(){
最后你应该使用on
之类的
$(document).on("change", "#toggleSelect", function() {