【发布时间】:2009-03-11 17:31:22
【问题描述】:
我知道有一种更优雅/更有效的方法(在 php 中我会使用 foreach),但是使用 jQuery,我如何遍历 JSON 响应的 var/val 对并填充具有相同 id 的表单字段JSON 响应中的字段名称?
这是我的 JSON 响应:
[{"field":"svendor_name","value":"Vendor Name Inc."},{"field":"svendor_addr1","value":"1234 Vendor Lane."},{"field":"svendor_addr2","value":"Suite 100"},{"field":"svendor_city"
,"value":"Vendorville"},{"field":"svendor_state","value":"CA"},{"field":"svendor_zip","value":"90210"},{"field"
:"svendor_phone","value":"800-555-1234"}]
这是我用于填充表单的 jQuery 代码:
$(document).ready(function()
{
$('#svendor_name').bind("change", function()
{
var svendor = $("#svendor_name").val();
svendor = svendor.replace(/&/g, '*');
$.getJSON("get_vendors.php?sname=" + svendor,
function(data)
{
$.each(data,
function(i, item)
{
if(item.field == "svendor_name")
{
$("#svendor_name").val(item.value);
}
else if(item.field == "svendor_addr1")
{
$("#svendor_addr1").val(item.value);
}
else if(item.field == "svendor_addr2")
{
$("#svendor_addr2").val(item.value);
}
else if(item.field == "svendor_city")
{
$("#svendor_city").val(item.value);
}
else if(item.field == "svendor_state")
{
$("#svendor_state").val(item.value);
}
else if(item.field == "svendor_zip")
{
$("#svendor_zip").val(item.value);
}
else if(item.field == "svendor_phone")
{
$("#svendor_phone").val(item.value);
}
else if(item.field == "svendor_id")
{
$("#svendor_id").val(item.value);
}
});
});
});
});
这一切都很好,但我真的想避免所有 if/else 语句,只使用从 getJSON 方法返回的数据来确定哪些字段填充了哪些值。什么是更清洁/更有效的方法?
-- 尼古拉斯
【问题讨论】: