我是一个初学者,所以我不知道自己是否清楚自己的问题。 我的问题是我的快递服务器发送的响应显示在页面中,但是我无法使用jquery在客户端处理它。
服务器端:
<android.support.design.widget.TabLayout
style="@style/CustomTabLayout"
/>
客户端:
router.post("/", [
//check inputs using expres-validator
],
(req, res)=>{
//handle validation results
var errors = validationResult(req);
if (!errors.isEmpty()) {
//filter errors
res.status(400).send([usernameErr, emailErr, passwordErr]);
}else {
res.sendStatus(200);
};
});
我正在将我的注册文件(具有上述路由)导出到我的主文件中。
$(".form-div form input[type='submit']").submit(function(e){
e.preventDefault();
if($(this).parent().parent().attr("id") == "signup-form-container"){
$.post('/signup', $('#signup-form-container form').serialize())
.done(data=>{
alert(data)
console.log(data);
})
.fail((err, textStatus)=>{
alert(err)
console.log(err)
});
};
});
答案 0 :(得分:1)
因此,如果您检查选择器:
$(".form-div form input[type='submit']") // this is selecting the input element
但是,submit事件仅在其位于form元素内部时触发, 因此将Submit事件附加到按钮或输入将不起作用。
这里是参考:https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event
因此,要解决此问题,请尝试以下操作:
/*
Here you are selecting the form, so submitting here will work.
*/
$(".form-div form").submit(function(e){
e.preventDefault();
if($(this).parent().parent().attr("id") == "signup-form-container"){
$.post('/signup', $('#signup-form-container form').serialize())
.done(data=>{
alert(data)
console.log(data);
})
.fail((err, textStatus)=>{
alert(err)
console.log(err)
});
};
});
这就是单击有效的原因,因为单击元素时会触发。我希望这是有道理的。