当前位置: 首页 > 面试题库 >

使用jquery用JSON数据重新填充表单

邹英光
2023-03-14
问题内容

我有一个HTML表单,可以通过ajax保存到数据库中。为了获得键/值对的查询字符串,我使用了非常方便的serialize函数,如下所示:

var myData = $("form#form_id").serialize();
$.ajax({
    url: "my_save_script.php",
    type: "post",
    data: myData,
    success: function(msg){
        alert(msg);
    }
});

现在,我想加载一个空白表格,并用数据库中的数据重新填充它,该数据是通过ajax调用作为JSON字符串传递的。我已经能够获得具有正确键/值对的Javascript对象,如下所示:

data = $.parseJSON(data);
data = data[0];

重新填写表格的最简单,最优雅的方法是什么?

请记住,表单的输入元素是文本,选择,复选框和单选。输入元素的名称与数据库列的名称相同,并且是上述data对象中键/值对的键。这就是为什么该serialize功能对我如此有效的原因


问题答案:

我想说,最简单的方法就是遵循以下思路:

// reset form values from json object
$.each(data, function(name, val){
    var $el = $('[name="'+name+'"]'),
        type = $el.attr('type');

    switch(type){
        case 'checkbox':
            $el.attr('checked', 'checked');
            break;
        case 'radio':
            $el.filter('[value="'+val+'"]').attr('checked', 'checked');
            break;
        default:
            $el.val(val);
    }
});

基本上,唯一奇怪的是复选框和单选按钮,因为它们需要具有自己的选中属性,好, 选中
。收音机比复选框要复杂一些,因为我们不仅需要检查它们,而且还需要找到正确的ONE进行检查(使用值)。其他所有内容(输入,文本区域,选择框等)应仅将其值设置为JSON对象中返回的值。

jsfiddle:http :
//jsfiddle.net/2xdkt/



 类似资料:
  • 问题内容: 我有以下jQuery代码。我可以从server获得以下数据。我该如何对此进行迭代,并用 另外,使用和之间有什么区别。 问题答案: 这应该可以解决问题: 这里的区别和(从jQuery的文档): [getJSON]是Ajax的简写功能,等效于: 编辑:要明确,部分问题是服务器的响应返回的是如下所示的json对象: …因此该属性需要使用手动解析。

  • 问题内容: 我想知道如何使用JSON填充表单吗? 我有一个使用php的JSON字符串, 并且我想使用JSON字符串填充表单控件(例如textarea或文本输入)。 我如何不使用外部插件(例如jQuery populate插件,我就看到了)来实现这一目标。 编辑:JSON格式: 这就是我从json_encode()得到的 问题答案: 此处存在问题,然后将其更改为开关值 使用它来为许多控件分配值:

  • 问题内容: 建议使用JQuery数据表。现在,我需要用从控制器发送的一堆json对象填充网格。我如何从JS在网格上发送此数据 更新 我已经找到了这些链接,但是我不知道如何实现它。 问题答案: 您应该使用JQuery DataTable sAjaxSource属性来指定ajaxsource,在这种情况下,它将是/ HomeReturnJsonData 以下是一个例子

  • 问题内容: 我知道在这个问题上有很多问题,但是我仍然不确定该怎么做。 我有一个名为“ CuisineForm”的HTML表单,在用户选择了美食类型之后,AJAX将该表单发送到服务器。AJAX调用工作正常,并且服务器以JSON响应进行响应,其中包含此特定美食的所有服务时间。这些服务时间分为早餐,午餐和晚餐。 这些时间需要以相同的形式填充到3个单独的下拉菜单中。 但我真的不知道如何处理JSON结果以填

  • 问题内容: 我试图用本地JSON信息填充JQM ListView。但是,没有创建列表项。任何帮助,将不胜感激。这是我的代码: JSON文件结构: HTML: JS: (更新) 问题答案: 首先,返回 JSON 数组是错误的,值(属性)应以逗号分隔。 第二个错误,您应该读取函数而非数组返回的对象。 jQueryMobile只会在页面加载后增强一次。当新数据动态添加到页面时,必须使jQueryMobi

  • 问题内容: 就像标题中所说的那样,尽管我对尚未付诸实践的理论很熟悉,但我仍在尝试使用jQuery,JSON和AJAX创建下拉菜单,因此,任何建议,演示代码段或教程都将不胜感激,因为我想开始最好的开始! 提前感谢! 问题答案: 您需要执行$ .getJSON调用以从document.load或其他一些事件http://api.jquery.com/jQuery.getJSON/上的服务器中获取jso