2013-10-25 102 views
0

我在jquery中遇到了一些麻煩,我無法真正縫合它來工作。jquery選擇器中的方括號

我正在做一個調查,每個問題的最後一個電臺選項是其他,所以用戶可以輸入自定義文本,如果喜歡。 我希望文本框被隱藏,直到或者如果收音機被選中並且文本框應該是對等的。

我試圖用這樣的:

$(document).ready(function() { 
    $("#custom_form_custom_field_2_block").hide(); 

    $("input:radio[name=custom_form[custom_field_1]]").change(function() { 
     if (this.value == "jeg har et helt 4. forslag") { 
      $("#custom_form_custom_field_2_block").fadeIn(); 
     } else { 
      $("#custom_form_custom_field_2_block").fadeOut(); 
     } 

    }); 

    $("#custom_form_custom_field_2_block").focusout(function() { 
     $("input:radio[name=Title]:checked").attr('value', $("#custom_form_custom_field_2_block").val()); 
    }); 
}); 

我有一個鏈接噸小提琴這裏:JSFiddle

希望能對你有所幫助, 問候 托馬斯

+0

您必須啓用jQuery的在你的jsfiddle。使用左側的菜單欄選擇正確的版本。然後在Chrome/IE或Firebug中運行Developer工具欄。錯誤是'未捕獲的錯誤:語法錯誤,無法識別的表達式:輸入:電臺[名稱= custom_form [custom_field_1]]' – jasonscript

回答

2

我相信這行是問題:

$("input:radio[name=custom_form[custom_field_1]]") 

括號(「[」和「]」)是css選擇器中的保留字符(您將這樣的選擇器傳遞給jQuery的$()函數),並且使用括號作爲元素名稱的一部分。試試這個:

$("input:radio[name=custom_form\\[custom_field_1\\]]") 

其產生

input:radio[name=custom_form\[custom_field_1\]] 

CSS選擇逃避這樣括號。可能不適用於所有瀏覽器。

編輯:這裏有轉義字符一些額外的信息在CSS選擇器: http://mathiasbynens.be/notes/css-escapes

+0

霍莉莫利,做了詭計。非常感謝Grüse! – maschm