我创建了以下函数来填充表单页面的字段,有多种方法可以在一个页面中多次使用它吗?
function scorriDati(xml)
{
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 "hidden" :
$(elements[i]).val($(id, xml).text());
break;
case "textarea" :
$(elements[i]).append($(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); // checked="checked" or checked=""
}
});
break;
case "select-one" :
var lung = $(xml).find(nome).length;
if(lung==1)
{
$(xml).find(nome).each(function()
{
if (($(this).find("optionValue").text() != "") && ($(this).find("optionDisplay").text() !=""))
{
$(elements[i]).append("<option value='"+$(this).find("optionValue").text()+"' selected>"+$(this).find("optionDisplay").text()+"</option><br>\n");
}
else
{
var value =$(this).text();
$(elements[i]).append("<option value='"+value+"' selected>"+value+"</option>");
}
});
}
else
{
$(xml).find(nome).each(function()
{
$(elements[i]).append("<option value='"+$(this).find("optionValue").text()+"'>"+$(this).find("optionDisplay").text()+"</option><br>\n");
});
}
break;
case "select-multiple" :
$(xml).find(nome).each(function(){
var value =$(this).text();
$("#"+id).append("<option>"+value+"</option>");
});
break;
}
});
}
我以这种方式使用这个功能:
$("#div_cont").load("./schemi/sch_anag.php");
$.post("./php/cliente.php",
{azione:"vedi", contratto:contratto},
function(xml)
{
scorriDati(xml);
$("#div_cont").append("<div style='clear:both'><div class='bt' id='del_"+contratto+"'>elimina</div> <div class='bt' id='mod_"+contratto+"'>VALIDA</div></div>");
},
"xml"
);
答案 0 :(得分:1)
只需使用以下命令定义函数:
function scorriDati(xml, formId) {
var forma = $('#' + formId);
//...
...并给每个表单一个id。
答案 1 :(得分:1)
如果您的XML包含表单元素的所有ID,则代码应按原样运行。
另一件事:出于性能原因,您应该将$(elements[i])
和$(id, xml)
存储在变量中。