diff --git a/libs/web/htdocs/luci-static/resources/cbi.js b/libs/web/htdocs/luci-static/resources/cbi.js index 1cd49bc65d..1e751d47e6 100644 --- a/libs/web/htdocs/luci-static/resources/cbi.js +++ b/libs/web/htdocs/luci-static/resources/cbi.js @@ -218,6 +218,14 @@ var cbi_validators = { if (!isNaN(max) && !isNaN(val)) return (val <= max); + return false; + }, + + 'neg': function(v, args) + { + if (args[0] && typeof cbi_validators[args[0]] == "function") + return cbi_validators[args[0]](v.replace(/^\s*!\s*/, '')); + return false; } }; diff --git a/libs/web/luasrc/cbi/datatypes.lua b/libs/web/luasrc/cbi/datatypes.lua index 6640db6392..fc3048e37e 100644 --- a/libs/web/luasrc/cbi/datatypes.lua +++ b/libs/web/luasrc/cbi/datatypes.lua @@ -267,3 +267,11 @@ function max(val, max) return false end + +function neg(val, what) + if what and type(_M[what]) == "function" then + return _M[what](val:gsub("^%s*!%s*", "")) + end + + return false +end