jquery从xml文件中填充多个复选框

时间:2010-05-31 10:58:09

标签: jquery xml checkbox

我必须使用jquery从post函数的XML文件中获取数据来填充表单中的多个复选框吗?

<input type="checkbox" name="mercato[]" id="mkt_0" value="A">A<input type="checkbox" name="mercato[]" id="mkt_1" value="B">B

提前致谢。 再见 ħ

2 个答案:

答案 0 :(得分:2)

以下是获取XML并通过jQuery解析它的示例:

$.ajax({
        type: "POST",
        url: "some.xml",
        dataType: "xml",
        success: function(xml) {
            var node = $(xml).find('node');
            var attribute = $(xml).find('node').attr("attribute");
        //TODO: do something with data
    }
    });

您可能还希望使用$.each()来迭代元素集合。

编辑:这里是如何创建一些复选框,假设返回的XML如下所示:

<?xml version="1.0"?>
<RootElement>
    <CheckBox name="checkbox1">checked</CheckBox>
    <CheckBox name="checkbox1">checked</CheckBox>
    <CheckBox name="checkbox1"></CheckBox>
    <CheckBox name="checkbox1"></CheckBox>
    <CheckBox name="checkbox1">checked</CheckBox>
</RootElement>

js看起来像这样:

$(xml).find('CheckBox').each(function(){
        var value = $(this).text(); // get the value
        var name = $(this).attr("name"); //get the name attribute
        $("#parent_div").append( //append to some parent container
                $("<input/>") // a new input element
                    .attr("type", "checkbox") //of type checkbox
                    .attr("name", name) // with given name
                    .attr("checked", value) // checked="checked" or checked=""
        )
    });

答案 1 :(得分:0)

得到你的帮助我得到了解决方案!

这是我的工作脚本:

var forma=$("form");
                var elements=$("*", forma);
                $.each(elements,function(i){
                    var id = $(elements[i]).attr("id");
                    var tipo = $(elements[i]).attr("type");
                    var nome=$(elements[i]).attr("name");
                    var val=$(elements[i]).attr("value");
                    switch (tipo)
                    {
                        case "text" :
                            $(elements[i]).val($(id, xml).text());
                        break;
                        case "radio":
                            $("input:radio[name='"+nome+"'][value='"+ $(nome, xml).text() +"']").attr('checked', true);
                        break;
                        case "checkbox":
                            $(xml).find(nome).each(function(){ 
                            var value =$(this).text();
                            if (val==value)
                            {
                                    $("#"+id).attr("checked", value);                                   }
                            }); 

                        break;
                        case "select-one" :
                            $(elements[i]).append("<option selected>"+$(nome ,xml).text()+"</option>");
                        break;
                    }

                    $("#scheda_ris").append(id+" "+tipo+" "+nome+" "+val+"<br>"); //that's just for debug
                });

如果你有建议让它更优雅,我会非常高兴 再次感谢

侨 小时。