jQuery的阿贾克斯有助于提高功能 [英] jquery-ajax help to improve function
本文介绍了jQuery的阿贾克斯有助于提高功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经创建了下面的函数来填充表单页面的领域,有一种方法可以有多种的形式使用几个时间在一个页面上?
函数scorriDati(XML)
{
VAR备考= $(形式);
VAR元素= $(*,算);
$每个(元素,功能(我){
VAR ID = $(元素[I])ATTR(ID)。
VAR TIPO = $(元素[I])ATTR(类型)。
VAR诺姆= $(元素[I])ATTR(名)。
VAR VAL = $(元素[I])ATTR(价值)。
开关(TIPO)
{
案文:
$(元素[I])VAL($(ID,XML)的.text())。
打破;
案隐藏:
$(元素[I])VAL($(ID,XML)的.text())。
打破;
案文本区域:
$(元素[I])追加($(ID,XML)的.text());
打破;
案广播:
$(输入:广播[名称='+诺姆+'] [值='+ $(诺姆,XML)的.text()+'])ATTR('检查',真正的);
打破;
案复选框:
$(XML).find(诺姆)。每个(函数(){
VAR值= $(本)的.text();
如果(VAL ==值)
{
$(#+ id)的.attr(选中,值); //检查=检查或签=
}
});
打破;
案选一:
VAR肺= $(XML).find(诺姆).length;
如果(肺== 1)
{
$(XML).find(诺姆)。每个(函数()
{
如果(!($(本).find(optionValue)文本()=)及及($(本).find(optionDisplay)文本()=!))
{
$(元素[I])追加(<期权价值='+ $(本).find(optionValue)文本()+。选择>+ $(本).find(optionDisplay )的.text()+< /选项>< BR> \ N);
}
其他
{
VAR值= $(本)的.text();
$(元素[I])追加(<期权价值='+价值+'选择>+价值+< /选项>中);
}
});
}
其他
{
$(XML).find(诺姆)。每个(函数()
{
$(元素[I])追加(&LT;选项value='"+$(this).find("optionValue").text()+"'>"+$(this).find("optionDisplay").text()+"</option><br>\n");
});
}
打破;
案选择海报:
$(XML).find(诺姆)。每个(函数(){
VAR值= $(本)的.text();
$(#+ id)的.append(&LT;选项&gt;中+价值+&LT; /选项&gt;中);
});
打破;
}
});
}
我用这种方式这个功能:
$(#div_cont)的负载(./ schemi / sch_anag.php)。
$。员额(./ PHP / cliente.php
{动作类:韦迪,contratto:contratto},
功能(XML)
{
scorriDati(XML);
$(#div_cont)追加(&LT;股利风格=明确:既&GT;&LT; DIV CLASS ='BT'ID ='德尔_+ contratto +'&GT; elimina&LT; / DIV&GT;&LT; DIV类='BT'ID ='模_+ contratto +'&GT; VALIDA&LT; / DIV&GT;&LT; / DIV&gt;中);
},
XML
);
解决方案
刚刚与定义函数:
函数scorriDati(XML,formId){
VAR备考= $('#'+ formId);
// ...
...并给每个窗体一个id。
I have created following function to fill field of a form page, there is a way to use it several time in one page with multiple form?
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;
}
});
}
I use this function in this way:
$("#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"
);
解决方案
Just define the function with:
function scorriDati(xml, formId) {
var forma = $('#' + formId);
//...
... and give each form an id.
这篇关于jQuery的阿贾克斯有助于提高功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文