为什么我会收到未捕获的语法错误

时间:2014-01-21 07:30:25

标签: jquery syntax selector

我正在尝试编写一个脚本,该脚本遍历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);

        }
    }); 
});

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:0)

您的代码中存在多个语法错误,请尝试以下代码

$(function() {
    $("#toggleSelect").on("change", function() {
        idToggler = $(this).attr("rel");
        if ($("#" + idToggler).is(":disabled")) {
            $("#" + idToggler).prop("disabled", false);
        } else {
            $("#" + idToggler).prop("disabled", true);
        }
    });
});

Fiddle Demo

答案 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() {