DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> Jquery判斷form表單數據是否變化
Jquery判斷form表單數據是否變化
編輯:關於JavaScript     

本文實例為大家分享了Jquery判斷form表單數據是否變化的三大步驟,供大家參考,具體內容如下

1、思路為:修改時點擊一行datagrid,並進行頁面跳轉數據綁定,在提交form時,序列號form表單,並重新獲取datagrid選中的行數據,進行數據比較。</span> 

/** 
 * 判斷form內屬性值是否被修改 
 * 
 * @param jsonForm 對應修改的form序列化後的json數據 
 * @param row 對應datagrid選中的數據源 
 * 
 * @Return true 存在修改項 
 *     false 不存在修改項 
 */ 
isModified:function(jsonForm,row){ 
  for(key in jsonForm){ 
    //form中存在,但數據源datagrid中不存在 
    if(row[key] == undefined){ 
      continue; 
    } 
    //form中""或null,但數據源datagrid中為null或""時,不進行比較 
    if(!((jsonForm[key] == null || jsonForm[key] == '') && (row[key] == null || row[key] == ''))){ 
      //如果值不同,則返回true 
      if(jsonForm[key] != row[key]) 
        return true; 
    } 
  } 
  return false; 
} 

2、獲取變化的值前後變化信息,由於項目需要記錄值變更記錄,並保存column中英文信息,如下:

/** 
   * 獲取form被修改信息 
   * 
   * @param jsonForm 對應修改的form序列化後的json數據 
   * @param row 對應datagrid選中的數據源 
   * @param columnJSModel 為表單form中name屬性中英對照js,需在update.jsp中引用此js文件 
   * 
   * @Return json 數據如:[{"updateColumn":"loanRatio","updateColName":"額比例","updateContent":"由11變更為100.00"}, 
   *     {"updateColumn":"loanQuotaTypeName","updateColName":"比例形式","updateContent":"由 卡 變更為 實物"}] 
   * 
   */ 
  getModifiedField:function(jsonForm,row,columnJSModel){ 
    var modifiedArry = []; 
    var jsonArrStr = ''; 
    for(key in jsonForm){ 
      //form中存在,但數據源datagrid中不存在 
      if(row[key] == undefined){ 
        continue; 
      } 
      //form中""或null,但數據源datagrid中為null或""時,不進行比較 
      if(!((jsonForm[key] == null || jsonForm[key] == '') && (row[key] == null || row[key] == ''))){ 
        //如果值不同,則返回true 
        if(jsonForm[key] != row[key]){ 
          var jsonObj = {}; 
           
          jsonObj.updateColumn = key; 
          jsonObj.updateColName = columnJSModel[key]; 
          jsonObj.updateContent = '由'+ row[key] + '變更為' + jsonForm[key]; 
           
          modifiedArry[modifiedArry.length] = jsonObj; 
        } 
      } 
    } 
    jsonArrStr = JSON.stringify(modifiedArry); 
    //console.log(jsonArrStr); 
    return jsonArrStr; 
  } 

3、其中的columnJSModel為中英對照JS實體,ratio、qutaTypeName分別對應form中的name屬性名,如下:

var policyColumn = { 
     
    ratio : '比例', 
    quotaTypeName : '比例形式' 
     
}; 

以上就是本文的全部內容,希望對大家的學習有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved