X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=libs%2Fweb%2Fhtdocs%2Fluci-static%2Fresources%2Fcbi.js;h=d8719c4b91fbc44e16a4b8aa5f47f635c4547eed;hp=0a49a693a352593c8b1f314d21a6e1e1548b9499;hb=c802c941cb5892ac43ee865594d3e06b60c00ace;hpb=fd0f8e80c50f01020258c73c41e206c38b4ca824 diff --git a/libs/web/htdocs/luci-static/resources/cbi.js b/libs/web/htdocs/luci-static/resources/cbi.js index 0a49a693a..d8719c4b9 100644 --- a/libs/web/htdocs/luci-static/resources/cbi.js +++ b/libs/web/htdocs/luci-static/resources/cbi.js @@ -148,8 +148,8 @@ var cbi_validators = { 'hostname': function() { if (this.length <= 253) - return (this.match(/^[a-zA-Z]+$/) != null || - (this.match(/^[a-zA-Z0-9][a-zA-Z0-9\-.]*[a-zA-Z0-9]$/) && + return (this.match(/^[a-zA-Z0-9]+$/) != null || + (this.match(/^[a-zA-Z0-9_][a-zA-Z0-9_\-.]*[a-zA-Z0-9]$/) && this.match(/[^0-9.]/))); return false; @@ -216,6 +216,33 @@ var cbi_validators = { return false; }, + 'rangelength': function(min, max) + { + var val = '' + this; + if (!isNaN(min) && !isNaN(max)) + return ((val.length >= min) && (val.length <= max)); + + return false; + }, + + 'minlength': function(min) + { + var val = '' + this; + if (!isNaN(min)) + return (val.length >= min); + + return false; + }, + + 'maxlength': function(max) + { + var val = '' + this; + if (!isNaN(max)) + return (val.length <= max); + + return false; + }, + 'or': function() { for (var i = 0; i < arguments.length; i += 2) @@ -414,7 +441,7 @@ function cbi_combobox(id, values, def, man) { var obj = document.getElementById(id) var sel = document.createElement("select"); sel.id = selid; - sel.className = 'cbi-input-select'; + sel.className = obj.className.replace(/cbi-input-text/, 'cbi-input-select'); if (obj.nextSibling) { obj.parentNode.insertBefore(sel, obj.nextSibling); @@ -477,6 +504,10 @@ function cbi_combobox(id, values, def, man) { //Do nothing } }) + + // Retrigger validation in select + sel.focus(); + sel.blur(); } function cbi_combobox_init(id, values, def, man) {