如何在不使用车把和Ajax重新加载的情况下触发数据显示

时间:2018-04-12 04:22:22

标签: jquery ajax express handlebars.js

所以我有一个像这样的简单登录页面:

    <form class="form-container" method="post" action="/login">

      <div class="container">
        <label for="username"><b>Username</b></label>
        <input type="text" placeholder="Enter Username" name="username" required>

        <label for="password"><b>Password</b></label>
        <input type="password" placeholder="Enter Password" name="password" required>

        <div id="alertContainer" class="alert-container">{{data}}</div>
        <button type="submit">Login</button>
        <label>
          <input type="checkbox" checked="checked" name="remember"> Remember me
        </label>
      </div>
    </form>

请注意,alertContainer是一个div,用于显示任何错误。例如,如果找不到用户名,我想在此处显示"Username not found",因此handlebars语法{{data}}

我使用快递的后端POST请求如下:

app.post('/login', function(req, res) {
    var user = //find user in database;

    if(!user) {
        var data = "Username not found";
        // somehow get to page to display data
    }

    // do other things
});

问题是我只知道如何重新渲染页面以传入数据。但我只希望显示一个简单的错误字符串alertContainer而不刷新整个页面。当然,我可以在Ajax页面的底部添加一些html脚本,但我不确定如何使其工作。

1 个答案:

答案 0 :(得分:0)

试试这个:

if(!user){
       document.getElementById(&#34; alertContainer&#34;)。innerHTML =&#34;未找到用户名&#34 ;;
}