反饋已提交
網絡繁忙
使用者希望在某個欄位(如收件人、複本人)輸入多個值後,即時校驗輸入人員ID是否存在,如不存在,則彈窗提醒。如下圖所示:
給填報元件新增編輯結束事件,透過使用 JS 的取陣列差集,再判斷差集長度的方法實現。
// 差集 陣列arr1相對於arr2所沒有的let diff = arr1.filter(function (val) { return arr2.indexOf(val) === -1 })
建立範本,建立資料查詢資料集 ds1,查出資料庫中的僱員資訊,其中 ID 欄資料將作為填報時允許輸入員工ID比對集。
SQL 語句為:SELECT * FROM s僱員
設計填報表格,A1~C1 儲存格新增表頭,給 A2~C2 儲存格 新增「正文元件」,並設定向下擴展。如下圖所示:
選中 A2 儲存格的「正文元件」,為元件新增一個「編輯結束」事件。如下圖所示。
事件新增一個參數 pm,值為公式:ds1.select(僱員ID),該參數用來獲取資料庫中僱員ID的資訊,構成 ID 陣列。
avaScript 程式碼如下:
注1:需將使用者輸入字串間的分隔符統一更換為英文狀態下的逗號,本案例以分號為例做了轉換。
注2:由於僱員ID組成的陣列為數值陣列,而儲存格內多值組成的陣列為字串陣列,故程式碼中需將 pm 轉為字串陣列,才能正確取陣列間差集。
var id = this.getValue();//獲取當前儲存格值//建立正則運算式將值內的";"轉為","var str=';';var value = id.replace(new RegExp(str,'gm'),',');//alert(value);var arr1 = value.split(',');//字串陣列//alert(arr1);let arr2=pm.map(String);//將pm由數值陣列轉換為字串陣列//alert(arr2);//取arr1有而arr2所沒有的陣列物件組成的差集let diff = arr1.filter(function (val) { return arr2.indexOf(val) === -1 })//alert(diff);//去除空陣列diff=$.grep(diff,function(x){return $.trim(x).length>0;});//判斷差集陣列的長度,若不為0,則表示儲存格記憶體在不屬於資料庫中的值,彈出提示。if(diff !=0){ alert('僱員ID:'+diff+'不存在');}
保存模板,点击「填报预览」。效果如下图所示:
注:不支持移动端。
点击下载模板:
JS校驗填報值是否在資料庫中存在.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙