Express.js:使用文本框和按钮验证表单

时间:2013-04-13 15:33:50

标签: forms node.js validation express pug

我正在使用Express.js中的表单,我正在使用express-validator进行验证。我在下面显示的代码是一个带有两个文本框的“表单”,一个选择文件按钮和一个提交按钮。当用户提交表单时,我想要验证错误:

  1. 显示错误消息,说明用户需要填写的表单中的哪些元素。我相信我知道如何使用弹出窗口执行此操作,但我想知道是否有“突出显示”用户需要填写的文本框,或在文本框/按钮旁边添加“*必需”文本的方式。

  2. 目前,如果存在错误,则在提交后,表单中的两个文本框将填充先前由用户提交的变量。我想对“选择文件”按钮执行相同的操作。正如我在两个文本框中所做的那样使用“值”字段对按钮不起作用。有没有办法做到这一点?

  3. //在路线文件夹

    exports.myPage = function(req, res) {
       res.render('myPage.jade', {valName: 'Enter', valLastName: 'Enter'});
    };
    
    exports.myPage_post_handler = function(req, res) {
    
       nameID = req.body.nameID;
       lastNameID = req.body.lastNameID;
       my_file = req.body.my_file;
    
       req.session.nameID = nameID;
       req.session.lastNameID = lastNameID;
       req.session.my_file = my_file;
    
       if (typeof req.session.nameID != 'undefined'){
          valName = nameID;
       }
    
       if (typeof req.session.lastNameID != 'undefined'){
          valLastName = lastNameID;
       }
    
    
       req.assert('nameID', 'Please enter a name').notEmpty();
       req.assert('lastNameID', 'Please enter a last name').notEmpty();
       req.assert('my_file', 'Please enter a my_file').notEmpty();
    
    
    
       var errors = req.validationErrors();
    
       if( !errors){
         res.redirect('/other_page'); 
       }
       else {
         res.render('myPage.jade');
       }
     };
    
     //in my_page.jade
     form(method='post')
        | Name:
        div
         input(type='text', name='nameID', id = 'name', value = valName)
        | Session ID:
        div
         input(type='text', name='laastNameID', id ='lastName', value = valLastName)
        | Video:
        div
         input(type='file', name='my_file', id='fileF')
    
        div
         input(type='submit', value='submit', value='Submit')
    

1 个答案:

答案 0 :(得分:0)

在Html5(也适用于Jade)中,只要声明文本框或单选按钮等,就可以输入“必需”参数。