1. 程式人生 > >html、jsp頁面標籤的遍歷

html、jsp頁面標籤的遍歷

應用場景:最近的專案中二級子頁面遍歷生成、操作表格比較多,記錄一下一直用的遍歷方法。

一般此類表格都是通過ajax請求資料,然後從callbackFunction中獲取資料集合,遍歷生成表:

eg:

var postData=new Object();
    postData.idString=idString;
    $.ajax({
    url:'debt/findXXXList.do'+'?t='+Math.random()+'&token='+token,
    data:postData,
    type:'POST',
    dataType:'json',
    success:function(data){
        //初始化資料
        $("#confirmInf").empty();
        for(var i=0;i<data.length;i++){
            var inf=data[i];
            var realname=inf.real_name;
            var amount=inf.original_amount_cny;
            var debtID=inf.debtID;
            var html='<tr><td><a class="name" title='+realname+' style="margin-right:0px;">'+realname+'</a></td>';
            var html2='<td class="abstract shuheixian"><input type="text" id="detils" placeholder="摘要內容不超過20個字" debtid='+debtID+' maxlength="20" autofocus></td>';
            var html3='<td class="sum">'+amount+'</td><td class="sum"></td>';
            var html4='<td class="sum">'+amount+'</td></tr>';
            $("#confirmInf").append(html+html2+html3+html4);
        }
        //彈出視窗
        var maskHight=$(document).height();
        var maskWidth=$(document).width();
        $('<div class="mask"></div>').appendTo($('body'));
        $('div.mask').css ({
              'opacity':0.5,
              'background':'#000',
              'position':'absolute',
              'left':0,
              'top':0,
              'width':maskWidth,
              'height':maskHight,
              'z-index':9999
        });
        $('.accept_contain').show();
        gaoduDIV();//樣式
        $(".accept_contain input").eq(0).focus();
   },
    error:function(){
        console.log("error初始化資料出錯。。。");
        //傳送請求給傳送郵件介面(郵件介面處理掉異常資訊),呼叫給後臺提示儘快修復
        var pageName="new/receivedClaims";
        var type ="findReceivedDebtPageList===初始化彈窗失敗===jsp434行";
        tips("系統升級中,請稍後進行嘗試。",false);
    },

 });

此時,彈出二級頁面,並且迴圈生成了表格資料。

這時候,需要對錶格中的input標籤內容進行驗證,而常規的通過id獲取標籤的方式不能準確定位到某條迴圈生成的資料.

此時分為兩種情況:

1、獲取某一行中編輯過的多條資料。

      這個需要定位到每個標籤,並且從標籤中獲取我們所需要的資料。對應著標籤結構慢慢找並不難:

//驗證
    if(!validate()){
        return false;
    }
    var dataStr="";
    var flag=1;
    var Obj1=document.getElementsByClassName("dataInfo");//關鍵!獲取所有tr標籤,然後根據結構去一層層的找


    for (var i=0;i<Obj1.length;i++ ){
        var obj=Obj1[i].childNodes;
        var type ="claims";
        var debtid=obj[0].attributes["debtid"].value;
        var debtstatus=obj[0].attributes["debtstatus"].value;
        var detils=obj[2].childNodes[0].value;
        var amount1=obj[3].childNodes[0].value;
        var amount2=obj[4].childNodes[0].value;
        //資料合法性調整
        if(amount1==""){amount1=0};
        if(amount2==""){amount2=0};
        
        //str拼接
            if(flag==1){
                dataStr+=debtstatus+"&.&"+debtid+"&.&"+detils+"&.&"+amount1+"&.&"+amount2+"&.&";
                flag=-1;
            }else{
                dataStr+="@*@"+debtstatus+"&.&"+debtid+"&.&"+detils+"&.&"+amount1+"&.&"+amount2+"&.&";
            }
        }
   

2、對每一行的某一列資料進行驗證。

     這個用的jquery:

//資料驗證
function validate(){
    var result =true;
    //摘要欄位驗證
    $("#editInf input[id='intro'][type='text']").each(function(){//關鍵:選擇器的使用 id為editInf的標籤下所有 id=editInf 型別為text的標籤
        var value=$(this).val();
        if(value==null||value==''||value.length==0){
            $(this).val("");
            $(this).attr("style","background-color: #FFC1C1");
            $(this).attr("placeholder","摘要不能為空");
            result = false;
        }
    });

    //金額1驗證
    $("#editInf input[id='amount1'][type='text']").each(function(){
        
        var value=$(this).val();
        if(!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(value)){
            $(this).val("");
            $(this).attr("style","background-color: #FFC1C1");
            $(this).attr("placeholder","請填寫數字");
            result = false;
        }
    });
    //金額2驗證
    $("#editInf input[id='amount2'][type='text']").each(function(){
        var value=$(this).val();
        if(!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(value)){
            $(this).val("");
            $(this).attr("style","background-color: #FFC1C1");
            $(this).attr("placeholder","請填寫數字");
            result = false;
        }
        
    });
    return result;
}

相關推薦

htmljsp頁面標籤

應用場景:最近的專案中二級子頁面遍歷生成、操作表格比較多,記錄一下一直用的遍歷方法。 一般此類表格都是通過ajax請求資料,然後從callbackFunction中獲取資料集合,遍歷生成表: eg: var postData=new Object();     postDa

jsp頁面list中的資料

        3)使用JSTL迴圈表示式方式(此方式不需要前提0,通過EL表示式${itemCategoryList}可以直接取出request中的屬性值):   <select name="category" class="select1" id="category">

jsp 頁面中用struts2 標籤集合(list map)

1,list: public class ListTestAction extends ActionSupport { private List<String> list1; private List<User> list2;

JSP自定義標籤List (ct:forEach)

問題描述 : jsp 的pageContext域中存在User物件的users列表,想在jsp檔案中遍歷users. <% class User{ private String name; private Strin

[JSP]EL表示式和JSTL標籤取值物件和陣列與原來的對比

》》取出放進了request的key裡list,list含有物件 原: <%@page import="com.yiki.dbutil.*"%> <%@ page languag

復習 使用forwhile循環文件,數據類型轉換

數據類型 for while 1. python訪問文件通過內置函數open打開文件,看一下open函數解釋:打開文件返回的是一個文件對象fd = open('/tmp/tmp.txt')查看他的方法:關閉文件:fd.close()向文件內寫入:fd = open('/tm

ListSetMap常見集合總結

排序 out java tlab vhdl for var 定義 word Java中的集合有三大類,List、Set、Map,都處於java.util包中,List、Set和Map都是接口,不能被實例化,它們的各自的實現類可以被實例化。List的實現類主要有ArrayLi

for infor和EnumerateObjectsUsingBlock的區別

value cts mut 很多 普通 使用 keys bsp 枚舉 1.對於集合中對象數很多的情況下,for in 的遍歷速度非常之快,但小規模的遍歷並不明顯(還沒普通for循環快) 2. 如果在for in 循環裏,對這個數組進行了修改的話,無論是增,刪,修改數組

Thymleaf中th:each標籤list如何獲取index

簡單介紹:傳遞給後臺一個String型別的list,需要獲取到list的每一個元素,然後進行篩選,得到正確的文字值,看程式碼就明白了 程式碼: //後臺java程式碼//failList是一個String型別的list,存放的是狀態碼00 01 02 03 04 05 06中的某幾種map.addA

htmljsp頁面自動提交,無需每次重啟服務

從eclipse轉到idea遇到各種問題,之前eclipse可以自動儲存頁面內容無需重啟服務,但是idea不可以,網上找了n種辦法也沒用,可能版本不一樣吧,把我的解決方法紀錄一下,方便以後有人遇到這個問題可以直接解決。 首先在pom.xml加入下面依賴。然後按下面截圖配置一下就可以啦。 <depe

註冊,登陸的Servletdaoservicedomainjsp頁面

 登陸的JSP頁面程式碼: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html>

LeetCode - Path Sum IIIIIIIV - 深度優先

本篇文章記錄 Path Sum 相關的四道題目: 112 - Path Sum - Easy 113 - Path Sum II - Medium 437 - Path Sum III - Easy 666 - P

set集合容器-刪除查詢與自定義

簡介:要學習set集合容器,首先要了解紅黑樹(Red-black Tree)。紅黑樹是一種自平衡二叉查詢樹,是電腦科學中用到的一種資料結構,典型的用途是實現關聯陣列。Set集合容器實現了紅黑樹的平衡二叉檢索樹的資料結構,在插入元素時,它會自動調整二叉樹的排列,把該元素放到適當的位置,以確保每個子樹根

數組數組的排序算法

自動變 int clu using 鍵盤 space [] 遍歷 nbsp int x[3] = { 1,2,3 }; int x[3] = { 1,2 };//未初始化的元素,默認0 int x[] = { 1,2,3 };//省略下標,依據元素個數自動變更下標 int

c標籤取map中list集合中的物件屬性值

今天寫批量列印功能時,後臺傳到前端的資料是map集合,以前沒用過,取值時出現了問題,在這裡記錄一下,備忘和複習時看: 1.前端主要部分如下: <body> <c:forEach var="fee" items="${map[\"EtImportFees\

Python自學之路:遞迴棧和佇列目錄

遞迴呼叫的概念:一個函式呼叫了自身,稱為遞迴呼叫 遞迴函式的概念:一個能夠被自身呼叫的函式稱為遞迴函式 遞迴一般執行的是迴圈邏輯 編寫遞迴函式的方法: 1、找出臨界條件,比如最小值,最大值等等 2、找出這一次和上一次的關係 3、假設當前函式已經能用,呼叫自身計算

隨機訊號嚴平穩寬平穩和性隨機訊號的通俗講解

在資訊系統中,資訊通常是以某種訊號形式存在的。而訊號在產生和傳輸的過程中,不可避免的會受到噪聲的干擾。即便有用訊號是確定性訊號,但是,由於噪聲是隨機訊號,要處理的訊號實質上也是隨機訊號。 對於一個隨機訊號,通常我們用多維概率密度函式來對其進行描述,當維數越多時,對隨機訊

JAVA基礎(19)---陣列的定義初始化及

陣列 陣列的定義:將同種型別的資料,有組織的存放與一定的記憶體空間中。 陣列的定義格式:           常用的格式:                                ①資料型別[]  陣列名稱 = new 資料型別[定義陣列的大小];      

STL map映照容器(一)map建立元素插入元素刪除和訪問

map映照容器的元素資料是由一個鍵值和一個映照資料組成的,鍵值與映照資料之間具有一一映照的關係。 map映照容器的資料結構是採用紅黑樹來實現的,插入元素的鍵值不允許重複,比較函式只對元素的鍵值進行

Jsp頁面標籤禁止預設填充黃色背景(親測有效)

一、jsp的<h:tex>標籤只能使用值這個方法去掉input在Chrome瀏覽器上的黃色背景:(普通html也可以用) input:-webkit-autofill, textarea:-webkit-autofill, select:-webki