diff options
| author | chenjinsong <[email protected]> | 2018-10-12 11:55:59 +0800 |
|---|---|---|
| committer | chenjinsong <[email protected]> | 2018-10-12 11:55:59 +0800 |
| commit | 46d541d1420903a4d119aaf185ea8422552f1708 (patch) | |
| tree | 27c817fcd1cba7d96f0ac6ab700376467d2a775f | |
| parent | 68315d7a6a707f6282b2301efe4b8839f065495c (diff) | |
修复系统配置页面表单校验逻辑错误的bug
| -rw-r--r-- | gloam/WebRoot/config/config.html | 8 | ||||
| -rw-r--r-- | gloam/WebRoot/js/common.js | 408 |
2 files changed, 212 insertions, 204 deletions
diff --git a/gloam/WebRoot/config/config.html b/gloam/WebRoot/config/config.html index 408e357..a1925cd 100644 --- a/gloam/WebRoot/config/config.html +++ b/gloam/WebRoot/config/config.html @@ -236,7 +236,7 @@ label.control-label{ <input class="input-medium focused" id="" type="text" value="#(deviceInfo.manageMac)" name="deviceInfo#(for.index).manageMac" - onblur="checkMac(this)"> + onblur="checkMac(this, #(deviceInfo.manageMac == null || deviceInfo.manageMac == '' ? 0 : 1))"> </div> </div> </td> @@ -247,7 +247,7 @@ label.control-label{ <input class="input-medium focused" id="" type="text" value="#(deviceInfo.manageMask)" name="deviceInfo#(for.index).manageMask" - onblur='checkMask(this)'> + onblur="checkMask(this, #(deviceInfo.manageMask == null || deviceInfo.manageMask == '' ? 0 : 1))"> </div> </div> </td> @@ -260,7 +260,7 @@ label.control-label{ <input class="input-medium focused" id="" type="text" value="#(deviceInfo.manageGateway)" name="deviceInfo#(for.index).manageGateway" - onblur="checkGateway(this)"> + onblur="checkGateway(this, #(deviceInfo.manageGateway == null || deviceInfo.manageGateway == '' ? 0 : 1))"> </div> </div> </td> @@ -372,7 +372,7 @@ label.control-label{ }); dialog.getModalHeader().hide();--# - if(changeFlag){ + if(ipFlag && gateWayFlag && maskFlag && macFlag){ top.$("#dialog").text("#(_res.get('confirm.update'))"); top.$("#dialog").dialog({ dialogClass: "no-close", diff --git a/gloam/WebRoot/js/common.js b/gloam/WebRoot/js/common.js index 6aa0b3e..49f8dfc 100644 --- a/gloam/WebRoot/js/common.js +++ b/gloam/WebRoot/js/common.js @@ -1,201 +1,209 @@ -//全部选中/或不选 - function allSelect(obj){ - var b = false; - if(obj.checked){ - b = true; - }else{ - b = false; - } - checkbox = document.all.checkRecords; - if(checkbox){ - if(checkbox.length){ - size = checkbox.length; - for(i=0;i<size;i++){ - try{ - checkbox[i].checked=b; - } catch(ex) { - ; - } - } - }else{ - checkbox.checked = b; - } - } - } - //删除选择记录 - var delMsg = true; - function delSelectRecords(url){ - if(delMsg){ - if(!window.confirm("确认删除记录?"))return; - } - var b = false; - checkbox = document.all.checkRecords; - size = checkbox.length; - if(size){ - for(i=0;i<size;i++){ - try{ - if(checkbox[i].checked){ - b = true; - break; - } - } catch(ex) { - ; - } - } - }else{ - if(checkbox.checked){ - b = true; - } - } - if(!b){ - alert("请选择要删除的记录!"); - return; - } - document.forms(0).action = url; - document.forms(0).submit(); - } - //删除某行记录 - function delRecord(obj,url){ - if(!window.confirm("确认删除记录?"))return; - checkbox = document.all.checkRecords; - if(checkbox){ - if(checkbox.length){ - size = checkbox.length; - for(i=0;i<size;i++){ - try{ - checkbox[i].checked=false; - } catch(ex) { - ; - } - } - }else{ - checkbox.checked = false; - } - } - - delMsg = false; - var checkObj = obj.parentElement.parentElement.cells(0).childNodes(1); - //alert(obj.parentElement.parentElement.cells(0).childNodes(0).id); - checkObj.checked = true; - delSelectRecords(url); - } - - //选择数据/下拉菜单 - function checkSelect(obj,value){ - for(i=0;i<obj.options.length;i++){ - if(obj.options[i].value == value){ - obj.options[i].selected = true; - break; - } - } - } - - // 验证ip是否合法 - function checkIp(data){ - changeFlag=true; - $(data).parent().find(".ip_error").remove(); - $(data).parent().find(".ip_success").remove(); - var inputString = $(data).val(); - var ip4Match=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; - var ip6Match=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/; - if(inputString==undefined||inputString==''){ - $(data).parent().append("<span class='help-inline ip_error' style='color:red'>×</span>") - changeFlag=false; - return; - } - var ip4flag=inputString.match(ip4Match); - var ip6flag=inputString.match(ip6Match); - if(ip4flag!=undefined&&ip4flag!=""){ - $(data).parent().append("<span class='help-inline ip_success' style='color:green'>√</span>") - }else if(ip6flag!=undefined&&ip6flag!=""){ - $(data).parent().append("<span class='help-inline ip_success' style='color:green'>√</span>") - }else{ - $(data).parent().append("<span class='help-inline ip_error' style='color:red'>×</span>") - changeFlag=false; - } - } - - // 校验网关 - function checkGateway(data){ - changeFlag=true; - $(data).parent().find(".gateway_error").remove(); - $(data).parent().find(".gateway_success").remove(); - var static_gw=$(data).val(); - - if(static_gw=='') - { - $(data).parent().append("<span class='help-inline gateway_error' style='color:red'>×</span>") - changeFlag=false; - return; - } - var gatewayMatch=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; - var gatewayflag=static_gw.match(gatewayMatch); - - if(gatewayflag!=undefined&&gatewayflag!=""){ - $(data).parent().append("<span class='help-inline gateway_success' style='color:green'>√</span>") - }else{ - $(data).parent().append("<span class='help-inline gateway_error' style='color:red'>×</span>") - changeFlag=false; - return; - } - - } - - //校验掩码 - function checkMask(data){ - changeFlag=true; - $(data).parent().find('.mask_success').remove(); - $(data).parent().find('.mask_error').remove(); - var mask = $(data).val(); - var maskMatch=/^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/; - if(mask==undefined||mask==''){ - $(data).parent().append("<span class='help-inline mask_error' style='color:red'>×</span>") - changeFlag=false; - return; - } - - var maskflag=mask.match(maskMatch); - if(maskflag!=undefined&&maskflag!=""){ - $(data).parent().append("<span class='help-inline mask_success' style='color:green'>√</span>") - }else{ - $(data).parent().append("<span class='help-inline mask_error' style='color:red'>×</span>") - changeFlag=false; - } - } - - //校验mac - function checkMac(data){ - $(data).parent().find(".mac_error").remove(); - $(data).parent().find(".mac_success").remove(); - var inputString = $(data).val(); - var macMatch=/^[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}$/; - var macMatch2=/^[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}$/; - if(inputString==undefined||inputString==''){ - $(data).parent().append("<span class='help-inline mac_error' style='color:red'>×</span>") - changeFlag=false; - return; - } - - var mac1 = new Array(); - mac1 = inputString.split(":"); - var mac2 =new Array(); - mac2 = inputString.split("-"); - if(!(mac1.length == 6||mac2.length==6)){ - $(data).parent().append("<span class='help-inline mac_error' style='color:red'>×</span>") - changeFlag=false; - return; - } - - var macflag=inputString.match(macMatch); - var macflag2=inputString.match(macMatch2); - if(macflag!=undefined&&macflag!=""){ - changeFlag=true - $(data).parent().append("<span class='help-inline mac_success' style='color:green'>√</span>") - }else if(macflag2!=undefined&&macflag2!=""){ - changeFlag=true - $(data).parent().append("<span class='help-inline mac_success' style='color:green'>√</span>") - }else{ - $(data).parent().append("<span class='help-inline mac_error' style='color:red'>×</span>") - changeFlag=false; - } +ipFlag = true;
+gateWayFlag = true;
+maskFlag = true;
+macFlag = true;
+ //全部选中/或不选
+ function allSelect(obj){
+ var b = false;
+ if(obj.checked){
+ b = true;
+ }else{
+ b = false;
+ }
+ checkbox = document.all.checkRecords;
+ if(checkbox){
+ if(checkbox.length){
+ size = checkbox.length;
+ for(i=0;i<size;i++){
+ try{
+ checkbox[i].checked=b;
+ } catch(ex) {
+ ;
+ }
+ }
+ }else{
+ checkbox.checked = b;
+ }
+ }
+ }
+ //删除选择记录
+ var delMsg = true;
+ function delSelectRecords(url){
+ if(delMsg){
+ if(!window.confirm("确认删除记录?"))return;
+ }
+ var b = false;
+ checkbox = document.all.checkRecords;
+ size = checkbox.length;
+ if(size){
+ for(i=0;i<size;i++){
+ try{
+ if(checkbox[i].checked){
+ b = true;
+ break;
+ }
+ } catch(ex) {
+ ;
+ }
+ }
+ }else{
+ if(checkbox.checked){
+ b = true;
+ }
+ }
+ if(!b){
+ alert("请选择要删除的记录!");
+ return;
+ }
+ document.forms(0).action = url;
+ document.forms(0).submit();
+ }
+ //删除某行记录
+ function delRecord(obj,url){
+ if(!window.confirm("确认删除记录?"))return;
+ checkbox = document.all.checkRecords;
+ if(checkbox){
+ if(checkbox.length){
+ size = checkbox.length;
+ for(i=0;i<size;i++){
+ try{
+ checkbox[i].checked=false;
+ } catch(ex) {
+ ;
+ }
+ }
+ }else{
+ checkbox.checked = false;
+ }
+ }
+
+ delMsg = false;
+ var checkObj = obj.parentElement.parentElement.cells(0).childNodes(1);
+ //alert(obj.parentElement.parentElement.cells(0).childNodes(0).id);
+ checkObj.checked = true;
+ delSelectRecords(url);
+ }
+
+ //选择数据/下拉菜单
+ function checkSelect(obj,value){
+ for(i=0;i<obj.options.length;i++){
+ if(obj.options[i].value == value){
+ obj.options[i].selected = true;
+ break;
+ }
+ }
+ }
+
+ // 验证ip是否合法
+ function checkIp(data){
+ $(data).parent().find(".ip_error").remove();
+ var inputString = $(data).val();
+ var ip4Match = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
+ var ip6Match = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/;
+
+ if (!inputString) {
+ $(data).parent().append("<span class='help-inline ip_error' style='color:red'>×</span>")
+ ipFlag = false;
+ return;
+ }
+ var ip4flag = inputString.match(ip4Match);
+ var ip6flag = inputString.match(ip6Match);
+ if (ip4flag) {
+ ipFlag = true;
+ } else if (ip6flag) {
+ ipFlag = true;
+ } else {
+ $(data).parent().append("<span class='help-inline ip_error' style='color:red'>×</span>")
+ ipFlag = false;
+ }
+ }
+
+ // 校验网关
+ function checkGateway(data, flag) {
+ $(data).parent().find(".gateway_error").remove();
+ var static_gw = $(data).val();
+
+ if (!static_gw && flag == 0) {
+ gateWayFlag = true;
+ return;
+ }
+ if (!static_gw) {
+ $(data).parent().append("<span class='help-inline gateway_error' style='color:red'>×</span>")
+ gateWayFlag = false;
+ return;
+ }
+ var gatewayMatch = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
+ var gatewayflag = static_gw.match(gatewayMatch);
+
+ if (gatewayflag) {
+ gateWayFlag = true;
+ } else {
+ $(data).parent().append("<span class='help-inline gateway_error' style='color:red'>×</span>")
+ gateWayFlag = false;
+ }
+
+ }
+
+ //校验掩码
+ function checkMask(data, flag) {
+ $(data).parent().find('.mask_success').remove();
+ $(data).parent().find('.mask_error').remove();
+ var mask = $(data).val();
+ var maskMatch = /^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/;
+ if (!mask && flag == 0) {
+ maskFlag = true;
+ return;
+ }
+ if (!mask) {
+ $(data).parent().append("<span class='help-inline mask_error' style='color:red'>×</span>")
+ maskFlag = false;
+ return;
+ }
+
+ var maskflag = mask.match(maskMatch);
+ if (maskflag) {
+ maskFlag = true;
+ } else {
+ $(data).parent().append("<span class='help-inline mask_error' style='color:red'>×</span>")
+ maskFlag = false;
+ }
+ }
+
+ //校验mac
+ function checkMac(data, flag) {
+ $(data).parent().find(".mac_error").remove();
+ $(data).parent().find(".mac_success").remove();
+ var inputString = $(data).val();
+ var macMatch1 = /^[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}$/;
+ var macMatch2 = /^[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}$/;
+ if (!inputString && flag == 0) {
+ macFlag = true;
+ return;
+ }
+ if (!inputString) {
+ $(data).parent().append("<span class='help-inline mac_error' style='color:red'>×</span>")
+ macFlag = false;
+ return;
+ }
+
+ var mac1 = new Array();
+ mac1 = inputString.split(":");
+ var mac2 =new Array();
+ mac2 = inputString.split("-");
+ if(!(mac1.length == 6||mac2.length==6)){
+ $(data).parent().append("<span class='help-inline mac_error' style='color:red'>×</span>")
+ macFlag = false;
+ return;
+ }
+
+ var macflag1 = inputString.match(macMatch1);
+ var macflag2 = inputString.match(macMatch2);
+ if(macflag1) {
+ macFlag = true
+ } else if (macflag2){
+ macFlag = true
+ }else{
+ $(data).parent().append("<span class='help-inline mac_error' style='color:red'>×</span>")
+ macFlag = false;
+ }
}
\ No newline at end of file |
