如何建模本网站要求

时间:2014-08-12 14:29:39

标签: javascript jquery web

我必须设计一个允许用户制作自定义表单的网站。稍后,此表单将与其他用户共享。

用户(表单的创建者)可以选择" input box"等元素。 ," check box"或" date"每个元素都有一组验证,例如"输入框" ,用户可以选择" alphanumeric"或" only digits"或" not empty"这些验证可能更复杂。

然后表单与其他用户(表单接收者)共享。他们在表格中填写他们的价值观。

用户收到表单应该面对每个字段的相同验证,例如表单所有者设置。

我的挑战是如何动态存储和创建用于验证的JavaScript?

如果它是简单的元素,那么我可以存储完整的HTML并在显示器上呈现它,但是这里的验证就会出现。

关于如何实现此功能的任何想法。

由于

1 个答案:

答案 0 :(得分:0)

最简单的方法是定义伪类:

function Validator(args){
    this.type = args.type || 'object';
    this.max = args.max || null;
    this.min = args.min || null;
    this.canBeEmpty = args.empty || false;
    this.validate = function(input) {
        var bool = true; //this is going to be true/false for valid/invalid
        if ((typeof(input) != this.type) || (!this.canBeEmpty && input === '')) {
            bool = false;
        } else {
            if (this.type == 'number') {
                //test against min/max
            }
        }
        return bool;
    }
}

var myFormValidator = new Validator(); //optionally add necessary arguments
var element = document.getElementById(/*input element id*/);
element.addEventListener('change', function() {
    var value = element.value; //or text, or whatever is appropriate
    var valid = myFormValidator.validate(value);
    if (valid) {
        //do stuff
    } else {
        //do other stuff
    }
});

如果你的风格比上面的构造函数更多,你可以替换工厂函数或闭包。