2016-03-21 58 views
4

我有一個選擇控件。我試圖用jquery更新這個控件,但是在空格忽略之後的值。如何在HTML中保留空間select select list <option value ='hi this'> hi</option>

if (brandObj != "") { 
    brandObj = eval("(" + brandObj + ")"); 
    $.each(brandObj, function(i, item) { 
     $("#<%=listBrand.ClientID%>").append( "<option value="+ item.Brand + ">" + item.Brand + "</option>"); 
    }); 

} 

這是我從服務器

enter image description here

得到之後卻呈現爲HTML選擇,它省略了字後space.whole價值是存在的,但數據一旦我得到的價值,它只有一半(雙引號中的值)。我試圖添加&nbsp;,但它正在顯示。它不會渲染爲空間。請給出您的建議。

enter image description here

+5

'.append( 「<選項值= '」 + item.Brand + 「'>」 ...'**注單引號* * – Tushar

+0

'eval()'?真的嗎?我不認爲你真的想要那個,我敢肯定你不需要它。'brandObj'有什麼值? – Tomalak

+0

你沒有回答我的問題。 brandObj'有嗎? – Tomalak

回答

8

你應該在報價包的屬性值的值(引用它)。如果你沒有在報價包裝他們,那麼空間後價值將被視爲屬性本身:

$("#<%=listBrand.ClientID%>").append("<option value='"+ item.Brand + "'>" + item.Brand + "</option>"); 
3

正如我在comment提到過,這個問題可以通過包裝在引號value屬性值來解決。

.append("<option value='" + item.Brand + "'>" ... 
        ^    ^

不過,我會建議使用Option構造的動態創建新<option>元素。

演示:

var arr = [{ 
 
    text: 'Hello World!', 
 
    value: 'hello World' 
 
}, { 
 
    text: 'Bye World!', 
 
    value: 'bye World' 
 
}]; 
 

 
var select = document.getElementById('mySelect'); 
 

 
// Iterate over array 
 
arr.forEach(function (obj, i) { 
 
    // Create new <option> with dynamic value and text 
 
    // Add the <option> to the <select> 
 
    select.appendChild(new Option(obj.text, obj.value)); 
 
});
<select id="mySelect"></select>

相關問題