Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为这个网站需求建模_Javascript_Jquery_Web - Fatal编程技术网

Javascript 如何为这个网站需求建模

Javascript 如何为这个网站需求建模,javascript,jquery,web,Javascript,Jquery,Web,我必须设计一个网站,允许用户作出定制的形式。稍后,此表单将共享给其他用户 用户(表单创建者)可以选择诸如“输入框”、“复选框”或“日期”等元素。每个元素都有一组验证,如“输入框”,用户可以选择“字母数字”或“仅数字”或“非空”等。这些验证可能更复杂 然后表单与其他用户(表单接收者)共享。他们在表格中填写自己的值 收到表单的用户应该面对与表单所有者设置的每个字段相同的验证 我的挑战是如何动态存储和创建用于验证的javascript 若它是简单的元素,那个么我可以存储完整的HTML并在显示时呈现它,

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

用户(表单创建者)可以选择诸如“
输入框
”、“
复选框
”或“
日期
”等元素。每个元素都有一组验证,如“输入框”,用户可以选择“
字母数字
”或“
仅数字
”或“
非空
”等。这些验证可能更复杂

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

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

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

若它是简单的元素,那个么我可以存储完整的HTML并在显示时呈现它,但在这里验证进入了画面

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


谢谢

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

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
    }
});

如果使用的是工厂函数或闭包,而不是上面的构造函数,那么您可以使用工厂函数或闭包。

如果您使用的是Jquery,那么您应该查看parselyjs。这可能会让您对验证有更多的了解。验证将存储在HTML中。始终在服务器上进行验证,因为您不能始终信任客户端。这可以通过一个JSON对象和字段以及这些字段所需的验证来实现。@Jordan:谢谢,伙计,让我看看欧芹。js@Jordan:我知道我的团队成员正在使用引导验证程序。无论如何,我的团队成员正在使用引导验证程序。无论如何,谢谢你的回答。