フォームページのフィールドを埋める次の関数を作成しましたが、複数のフォームで1ページで数回使用する方法がありますか?jquery-ajax関数を改善するのに役立ちます
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"
);
sje397さんにお返事ありがとうございます。フォーム要素のようなdivを埋め込むために私の関数に可能性を追加する方法があるとお考えですか?前もって感謝します! – haltman
@haltman:はい。 XMLデータに一致するIDを持つ複数の内部divでdivを設定すると、非常によく似たことが起こります。唯一の違いは、div要素には 'type'がなく、入力要素で使用される 'val'メソッドの代わりにJQueryの' text'メソッドを使用してコンテンツを設定する点です。 – sje397
ありがとうsje397良い提案私は今それを試してみましょう! ;) – haltman