Jon*_*yce 5 javascript coldfusion each jquery json
我有一个问题是自动填充从ColdFusion CFC返回的jQuery/JSON数据的选择下拉列表,代码如下:
$(function(){
$("#licences-add").dialog({autoOpen:false,modal:true,title:'Add Licences',height:250,width:380});
Run Code Online (Sandbox Code Playgroud)
});
function openAddLicence(intInstanceID,szName,szDatasourceName){
$.getJSON('/ASPAdmin/billing/handler.cfc?method=ListLicenceTypes&queryformat=column',{szInstanceDatasource:szDatasourceName},
function(data){
$.each(data,function(){
$('<option></option>').val(data.DATA.UUIDLICENCETYPE).text(data.DATA.SZLICENCETYPE).appendTo('#uuidLicenceType');
});
});
$("#intInstanceID").attr('value', intInstanceID);
$('span#szInstanceName').text(szName);
$("#licences-add").dialog('open');};
Run Code Online (Sandbox Code Playgroud)
返回的json是:
{"ROWCOUNT":1,"COLUMNS":["UUIDLICENCETYPE","SZLICENCETYPE"],"DATA":{"UUIDLICENCETYPE":["480CE560-BCD3-C7AC-AF50B3C71BBCC473"],"SZLICENCETYPE":["Standard"]}}
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
$("").val(this.UUIDLICENCETYPE).text不是函数
有任何想法吗?
HTML:
<tr>
<td><label for="uuidLicenceType" title="Select the licence type (required).">Licence Type</label> <span class="req">*</span></td>
<td>
<select name="uuidLicenceType" id="uuidLicenceType" class="bmSelect">
<option value=""></option>
</select>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
由于您返回的 JSON 不是数组,因此您只需要以下内容:
function(data){
var select = $('#uuidLicenceType');
$('<option />', {
val: data.DATA.UUIDLICENCETYPE,
text: data.DATA.SZLICENCETYPE[0]
}).appendTo(select);
}
Run Code Online (Sandbox Code Playgroud)
当前的$.each()代码调用是循环遍历对象的属性...查看它只是放入alert(this)循环中,因此在循环内它看到的是1、列数组和最后的数据对象。 您可以在此处的演示中看到这一点。
由于您只想访问单个对象的属性,因此可以使用上面的点表示法直接获取它们。如果您更改格式并获取其中的数组,则将我上面的内容包装在 a 中$.each()并在该循环内替换data为this。
更新评论:您SZLICENCETYPE将作为数组返回:"SZLICENCETYPE":["Standard"],因此您需要使用 从中获取第一个元素[0]。
| 归档时间: |
|
| 查看次数: |
1488 次 |
| 最近记录: |