0

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

  1. 显示一条错误消息,说明用户需要填写表单中的哪些元素。我相信我知道如何使用弹出窗口来做到这一点,但我想知道是否有办法“突出显示”要求用户填写的文本框,或在文本框/按钮旁边放置“*必填”文本。

  2. 目前,如果有错误,提交后,表单中的两个文本框会填充用户之前提交的变量。我想为“选择文件”按钮做同样的事情。正如我在两个文本框中所做的那样,使用“值”字段不适用于按钮。有没有办法做到这一点?

//在路由文件夹中

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')
4

1 回答 1

0

在 Html5(也适用于 Jade)中,您可以在声明文本框或单选按钮等时放置“必需”参数。

于 2013-04-21T01:00:44.450 回答