所以我有一个数据网格,当单击一行时,会加载一个表单,然后提取 JSON 数据并使用 JQuery 传播表单字段。它工作得很好......有时。它非常不一致,我无法弄清楚为什么它每次都不起作用。我可以单击一行,它会加载,然后(不刷新)接下来的几次它可能不会,然后(仍然不刷新)接下来的几次随机次数。
任何帮助,将不胜感激。脚本所做的第一件事是将相应的表单加载到 div #dlg 中,然后拉取 JSON 数据,然后解析并填充字段。
function fw_getFormData(r_id, t_name, r_key){
$('#dlg').dialog('refresh', 'dg_process/dg_edit_form.php?table='+t_name),
jsonURL = 'form_data/dg_forms_data.php?table='+t_name+'&pkey='+r_key+'&id='+r_id;
var jqxhr = $.getJSON( jsonURL, function() {})
//JSON load is complete. Propagate form fields.
.done(function(data) {
$.each(data, function(index, obj) {
$.each(obj, function(key, value) {
//$('#'+key).attr("value", value);
$("#dlg").parents("div").find('input[name='+key.toLowerCase()+']').val(value);
}); //End inner parse of JSON
}); //End outer Parse
}) // End .done
//JSON Did not load
.fail(function() {
alert( "JSON could not load" );
}) // End .fail
});
它正在解析的 JSON 如下所示:
[{"staffID":"1","fname":"Bill","lname":"Smith","email_address":"bsmith@fakeemail.net","password":"testpw"}]
最后一点,.fail 的警报在它不起作用时永远不会触发。