2016-06-21 61 views
0

我試圖將自定義數據屬性傳遞給我的selectize組件。下面是靜態的HTML生成的,我希望selectize:選擇性未捕獲的SyntaxError:位於位置0的JSON中的意外標記#

<select id="colour-filter" data-reactid=".0.1.0.2.0.0.1.0"> 
    <option value="" data-data="false" data-reactid=".0.1.0.2.0.0.1.0.$blank"></option> 
    <option value="2" data-data="#FFFFFF" data-reactid=".0.1.0.2.0.0.1.0.1:$2">White</option> 
    <option value="1" data-data="#FF0000" data-reactid=".0.1.0.2.0.0.1.0.1:$1">Red</option> 
    <option value="3" data-data="#C0C0C0" data-reactid=".0.1.0.2.0.0.1.0.1:$3">Silver</option> 
    <option value="4" data-data="#808080" data-reactid=".0.1.0.2.0.0.1.0.1:$4">Gray</option> 
    <option value="5" data-data="#800000" data-reactid=".0.1.0.2.0.0.1.0.1:$5">Maroon</option> 
    <option value="0" data-data="false" data-reactid=".0.1.0.2.0.0.1.0.$showAll">All colours</option> 
</select> 

不過,我收到以下錯誤,當內部selectize執行這段代碼(JSON.parse("#FFFFFF")):

VM11923:1 Uncaught SyntaxError: Unexpected token # in JSON at position 0

即使我從數據屬性中刪除#,它不起作用。 爲什麼selectize無法爲此html生成數據JSON?我該如何解決問題?

這是的jsfiddle - https://jsfiddle.net/gutzmnsw/

+0

請發表[MCVE] –

+0

http://json.org – YOU

+0

https://jsfiddle.net/gutzmnsw/ – vipin8169

回答

0

它具有以下HTML效果很好,但我不知道爲什麼我發送JSON和發送只是數據的數據將無法正常工作的屬性值,並且有在文件中沒有提到這一點:

<select id="colour-filter" data-reactid=".0.1.0.2.0.0.1.0"> 
    <option value="" data-reactid=".0.1.0.2.0.0.1.0.$blank"></option> 
    <option value="2" data-data="{&quot;hex&quot;:&quot;#FFFFFF&quot;}" data-reactid=".0.1.0.2.0.0.1.0.1:$2">White</option> 
    <option value="1" data-data="{&quot;hex&quot;:&quot;#FF0000&quot;}" data-reactid=".0.1.0.2.0.0.1.0.1:$1">Red</option> 
    <option value="3" data-data="{&quot;hex&quot;:&quot;#C0C0C0&quot;}" data-reactid=".0.1.0.2.0.0.1.0.1:$3">Silver</option> 
    <option value="4" data-data="{&quot;hex&quot;:&quot;#808080&quot;}" data-reactid=".0.1.0.2.0.0.1.0.1:$4">Gray</option> 
    <option value="5" data-data="{&quot;hex&quot;:&quot;#800000&quot;}" data-reactid=".0.1.0.2.0.0.1.0.1:$5">Maroon</option> 
    <option value="0" data-reactid=".0.1.0.2.0.0.1.0.$showAll">All colours</option> 
</select> 

Selectized我的組件是這樣的:

$('#colour-filter').selectize({ 
    plugins: ['restore_on_backspace'], 
    persist: false, 
    allowEmptyOption: true, 
    selectOnTab: true, 
    render: { 
    option: (item, escape)-> 
     if item.hex && item.hex == "#FFFFFF" 
     option_html = '<div>' + '<div style="background-color: ' + item.hex + ';border: 1px solid black"></div><span>' + 
      escape(item.text) + '</span>' + '</div>'; 
     else if item.hex 
     option_html = '<div>' + '<div style="background-color: ' + item.hex + '"></div><span>' + 
      escape(item.text) + '</span>' + '</div>'; 
     else 
     option_html = '<div>' + escape(item.text) + '</div>'; 
     return option_html 
    }, 
相關問題