首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery-ajax帮助改进功能

jquery-ajax帮助改进功能
EN

Stack Overflow用户
提问于 2010-12-08 21:03:18
回答 2查看 63关注 0票数 0

我已经创建了以下函数来填充一个表单页面的字段,有没有办法在一个页面多个表单中多次使用它?

代码语言:javascript
复制
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;

    }
});
 }

我以这种方式使用这个函数:

代码语言:javascript
复制
$("#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"
        );
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-08 21:11:33

只需使用以下命令定义函数:

代码语言:javascript
复制
function scorriDati(xml, formId) {
  var forma = $('#' + formId);
  //...

..。并给每个表单一个id。

票数 1
EN

Stack Overflow用户

发布于 2010-12-08 21:20:32

如果XML包含表单元素的所有If,则代码应按原样工作。

还有一件事:出于性能原因,您应该将$(elements[i])$(id, xml)存储在一个变量中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4387738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档