gpt4 book ai didi

javascript - 让 AJAX 与 Node.js 配合使用

转载 作者:行者123 更新时间:2023-12-03 06:34:00 27 4
gpt4 key购买 nike

我有一个注册页面的 POST 请求。它检查用户名是否已被其他用户使用:

router.post ('/register', function(req, res) {
User.findOne({username: req.body.username}, function(err, existingUser) {
if(existingUser) {
req.flash('errors1', req.body.username + ' already exists.');
return res.redirect('/register');
}
//some more code down here if the username is unique

这是表单(我正在使用 EJS):

<form method="POST" action="/register">
<% if (errors1.length > 0) { %>
<div class='form-group has-error'>
<label for="username">Stock Ticker</label>
<input type="text" name="username" class="form-control" id="username"/>
<span class="help-block"><%= errors1 %></span>
</div>

基本上,如果输入的用户名不唯一,表单下方会出现一条消息,告诉用户该用户名无法使用。但此消息仅在用户点击“提交”按钮后才会显示。

如何将 AJAX 融入其中?我以前从未真正使用过 AJAX,并且一直在阅读文档并观看教程,但我就是无法理解如何将 AJAX 合并到这段代码中。

最佳答案

您应该创建新的 api 来进行检查,并在输入控件失去焦点时触发此请求,也许代码如下所示:

server.js:

router.post ('/check_username', function(req, res) {
//CODE:check your username
})

html:

<div class='form-group has-error'>
<label for="username">Stock Ticker</label>
<input type="text" name="username" class="form-control" id="username"/>
<span class="help-block"><%= errors1 %></span>
</div>

js(Jquery):

$("#username").focusout(function(){
var value = $("#username").val();
//CODE:send the request and display result;
$.post('/check_username',{username:value},function(data){
//CODE:handle result
})
});

关于javascript - 让 AJAX 与 Node.js 配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317330/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com