作出查詢字符串,我有一些輸入。他們中的一些綁定到DataList和DataList控件有ID &值是這樣的:根據用戶輸入表單上的輸入選擇器
<input list="browserList" id="browser" value="opera"/>
<datalist id="browserList">
<option id="1" value="Chrome">
<option id="2" value="Firefox">
<option id="3" value="Opera">
<option id="4" value="Safari">
</datalist>
<input list="colorList" id="color" value="blue"/>
<datalist id="colorList">
<option id="0" value="red"/>
<option id="1" value="blue"/>
<option id="2" value="green"/>
</datalist>
<input type="text" id="name"/>
<input type="text" id="family"/>
現在我儘量讓輸入文本值& DataList控件ID的查詢字符串。所以我寫2 jQuery的功能:首先從數據列表
function sysGetDLID(dataListID,inputID)
{ return $('#'+dataListID).find('option[value="'+$('#'+inputID).val()+'"]').attr('id'); }
和未來獲取ID:
function inputSelector2QueryString(whatSelector)
{ var queryString = '';
$(whatSelector).each(function()
{ var elem=$(this);
queryString = queryString
+ '&'
+ elem.id
+ '='
+ (elem.attr('list')!==''
? sysGetDLID(elem.id+'List',elem.val())
: elem.val()); });
return queryString; }
但是當我打電話inputSelector2QueryString使查詢字符串沒有什麼回報。爲什麼?
是否有一個原因,你這樣做是自己,而不是使用jQuery的'.serialize( )'功能? – Barmar
如果您打算在AJAX調用中使用它,jQuery允許您將數據指定爲對象,並將其轉換爲查詢字符串。 – Barmar
我不知道.serialize(),但我解決了一些基於@Edgar Villegas Alvarado通知的代碼更改。 TXN埃德加。這是我的代碼,可能對其他人有用:'$(whatSelector).each(function(){queryString = queryString +'&'+ this.id +'='+(typeof $(this).attr('list' )=='undefined'?$(this).val():sysGetDLID(this.id +'List',this.id));});' –