我必须使用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
提前致谢。 再见 ħ
答案 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
});
如果你有建议让它更优雅,我会非常高兴 再次感谢
侨 小时。