Javascript 自动解析和格式化JSON属性名称
我使用脚本自动填充表单。当用户从下拉列表中选择一个选项时,它会向一个外部文件发出AJAX请求,该文件使用json_encode从数据库返回数据,表单会自动填充 代码如下:Javascript 自动解析和格式化JSON属性名称,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我使用脚本自动填充表单。当用户从下拉列表中选择一个选项时,它会向一个外部文件发出AJAX请求,该文件使用json_encode从数据库返回数据,表单会自动填充 代码如下: function myrequest(e) { var name = $('#username').val(); $.ajax({ method: "POST", url: "autofill.php", dataType: 'json', cac
function myrequest(e) {
var name = $('#username').val();
$.ajax({
method: "POST",
url: "autofill.php",
dataType: 'json',
cache: false,
data: {
username: name
},
success: function(responseObject) {
$('#posts').val(responseObject.posts);
$('#joindate').val(responseObject.joindate);
}
});
}
如您所见,当ID为username的下拉列表被更改时,将进行AJAX调用,并且带有ID posts和joindate的表单字段将自动填充
但是,我想对更多表单使用相同的函数,这些表单将自动填充具有不同ID的字段,当然,JSON将返回其他数据。有没有办法修改这个函数,这样我就不需要像$'posts.valresponseObject.posts这样单独写一行了;对于要解析的每个JSON值
换句话说,函数应该自动解析返回的JSON数据,如果有具有特定ID的字段,则应该自动填充。所以,如果JSON返回像{abc123:666,some_other_field:2017-03-06}这样的数据,函数应该找到并相应地预先填充ID为abc123和some_other_field的字段。我想类似的方法可以工作:
function myrequest(e) {
var name = $('#username').val();
$.ajax({
method: "POST",
url: "autofill.php",
dataType: 'json',
cache: false,
data: {
username: name
},
success: function(responseObject) {
for (var prop in responseObject) {
if (responseObject.hasOwnProperty(prop)) {
$('#' + prop).val(responseObject[prop]);
}
}
}
});
}
大多数这类问题都可以用括号表示法来解决。例如,responseObject[someVariable]=someOtherValue。假设someVariable='abc123',这将用someOtherValue填充responseObject.abc123,如果对象上不存在该属性,它将创建它。因此,您只需传入一个属性名称和值数组,这取决于您希望对象的设置方式,然后就可以了。没问题!如果这回答了您的问题,请标记为答案。