当前位置:  开发笔记 > 编程语言 > 正文

使用jQuery从关联数组填充表单

如何解决《使用jQuery从关联数组填充表单》经验,为你挑选了3个好方法。

上次我询问了相反的过程,得到了一些非常有效的答案.我的目标是最少的代码行.我有一种字段形式和{fieldname:data}格式的关联数组,我想用它填充相应的表单.



1> Adam Bellair..:

如果表单元素的ID设置为fieldname:

$.each(myAssocArry, function(i,val) { $('#'+i).val(val); });



2> J5...:

当我为一个项目做这个时,我发现设置选择字段,单选按钮和复选框的值需要更复杂的代码,类似于:

jQuery.each(data, function (name,value) {
  jQuery("input[name='"+name+"'],select[name='"+name+"']").each(function() {
    switch (this.nodeName.toLowerCase()) {
        case "input":
            switch (this.type) {
                case "radio":
                case "checkbox":
                    if (this.value==value) { jQuery(this).click(); }
                    break;
                default:
                    jQuery(this).val(value);
                    break;
            }
            break;
        case "select":
            jQuery("option",this).each(function(){
                if (this.value==value) { this.selected=true; }
            });
            break;
    }
  });
});

我没有测试过这段代码,所以我希望没有愚蠢的语法错误,我应该抓住它.希望这可以帮助.

我不允许在这里评论这些评论,所以....正如评论中所指出的,jQuery .val(val)方法处理设置单选按钮,复选框和选择.

您仍然需要将select [name = ...]放入jQuery选择器模式中,否则select元素将不会更新.


看看val()函数.我相信,它会为你处理所有这些案件.

3> Eran Galperi..:

或者类似于之前使用字段名称而不是ID的建议:

$.each(data, function(name,value) {
    $("input[name='" + name + "']").val(value);
});

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有