2014-01-21 204 views
0

我正在嘗試編寫一個腳本,該腳本會通過ID爲「toggleSelect」的所有元素。它應該添加一個onclick函數,該函數根據相同元素的rel屬性來切換給定的選擇框。爲什麼我會得到UncaughtSyntax錯誤

實施例:

<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功能,使選擇框「例1」。我收到一個「未捕獲的SyntaxError:意外的令牌。」我不知道爲什麼。這裏是我的代碼:

(function(){ 

    $("#toggleSelect").on("click", function(){ 
     idToggler = $(this).attr("rel"); 
     if($("#" + idToggler)).is(":disabled")){ 

      $("#" + idToggler.prop("disabled", false); 

     } else { 

      $("#" + idToggler.prop("disabled", true); 

     } 
    }); 
}); 

任何幫助將不勝感激!

+0

所有元素與 「toggleSelect」 的ID。保持多個ID的不好的做法。 –

+0

使用適當的IDE進行開發......它應該可以幫助你檢測到這個問題之王 –

+0

'$(「#」+ idToggler).prop'在prop錯過了'''之前看到')'。 – Jai

回答

0

試試這個:

$("#toggleSelect").change(function() { 
    idToggler = $(this).attr("rel"); 
    if($("#" + idToggler).is(":disabled")){ 

     $("#" + idToggler).removeAttr("disabled"); 

    } else { 

     $("#" + idToggler).addAttr("disabled"); 

    } 
}); 

Working Fiddle

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

+0

'click'應該在你的代碼中改變。 – Jai

0

這裏的問題

if($("#" + idToggler)).is(":disabled")){ 
        ↑ 

if($("#" + idToggler).is(":disabled")){ 

這裏的變化是問題

$("#" + idToggler.prop("disabled", false); 
       ↑ 

應該

$("#" + idToggler).prop("disabled", false); 

和其他

$("#" + idToggler).prop("disabled", true); 

,你需要之前(function(){

添加$標誌這樣

$(function(){ 

最後你應該使用on

$(document).on("change", "#toggleSelect", function() {