JQuery+JSON自动填充表单

主要用于“修改”操作的表单中,要求表单name属性值与json的key值一致

    function loadData(obj){
      if($.type(obj)!="object"){
        alert("页面初始化错误!");
        return false;
      }
      var key,value,tagName,type,arr;
      for(x in obj){
        key = x;
        value = obj[x];
        $("[name='"+key+"'],[name='"+key+"[]']").each(function(index){
          tagName = $(this)[0].tagName;
          type = $(this).attr('type');
          if(tagName=='INPUT'){
            if(type=='radio'){                      //处理radio
              $(this).attr('checked',$(this).val()==value);
            }else if(type=='checkbox'){             //处理checkbox
              for(var i =0;i<value.length;i++){
                if($(this).val()==value[i]){
                  $(this).attr('checked',true);
                  break;
                }
              }
            }else if(type=='date'){                  //处理日期型表单
              if(parseInt(value)>1000000000000)      //毫秒时间戳
                $(this)[0].valueAsNumber=parseInt(value);
              else if(parseInt(value)>1000000000)    //秒时间戳
                $(this)[0].valueAsNumber=parseInt(value)*1000;
              else                                   //字符串时间
                $(this)[0].valueAsDate=new Date(value);
            }else{
              if($.isArray(value))                    //表单组情形(多个同名表单)
                $(this).val(value[index]);
              else
                $(this).val(value);
            }
          }else if(tagName=='SELECT' || tagName=='TEXTAREA'){    //处理select和textarea
            if($.isArray(value))
              $(this).val(value[index]);
            else
              $(this).val(value);
          }    
        }); 
      }
    }

使用方法:

  • 直接将初始化数据放在网页中
    var obj={$detail};
    loadDate(obj);
  • 通过ajax返回json,如
    $.getJSON(
              "/*url*/",
              {"id":data_id},
              function(data,textStatus){
                if(textStatus=="success"){
                  loadData(data);
                }else{
                  alert("获取数据失败!");
                }
              }
            );  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值