【发布时间】:2020-11-19 03:47:27
【问题描述】:
我正在使用 Flask 框架.. 我在前端有一个用于登录 ID 和密码的表单标签以及一个提交按钮。
我想在前端使用JavaScript来验证用户在表单字段中提供的数据,然后如果一切正常,那么我想将用户提供的数据发送到后端服务器并进行处理使用python..
但是如何控制当用户点击提交按钮时,控件会转到 JavaScript 代码,然后经过验证后,将数据发送到后端服务器的过程
在 sn-p 中,我给出了一个虚拟示例。我的疑问是如何首先将控件发送到用 Java 脚本编写的 validate_login_form() ,然后在验证后控件应该转到 {{url_for('home')}} 使用Jinja2模板引擎写在action部分
我遇到的麻烦是,填写表单后,当用户单击提交按钮时,控件可以正常执行为验证表单而编写的 Java Script 函数,但即使 Java Script返回false,控件自动转到后端服务器。
但我想做的是,如果 Java 脚本返回 false,控件应该停在那里并要求用户再次填写表单。
function validate_login_form(){
let login_id = document.getElementById('login_id').value
let password = document.getElementById('password').value
if(login_id == '' && password == ''){
alert('please enter the login id and password')
return(false)
}
else if(login_id == '' && password != ''){
alert('please enter the login id')
return(false)
}
else if(login_id != '' && password == ''){
alert('please enter the password')
return(false)
}
else{
if(login_id == 'test' && password == 'test'){
return(true);
}
else{
alert('please enter the valid login id and password')
return(false)
}
}
}
<html>
<head>
</head>
<body>
<form action="{{url_for('home')}}" onsubmit="validate_login_form()">
<label for="login_id">LogIn</label>
<input type="text" name="login_id" placeholder="login Id" id="login_id">
<label for="password">Password</label>
<input type="password" name="password" placeholder="password" id="password">
<br><br>
<input type="submit" value="submit" >
</form>
<script src="{{ url_for('static', filename='scripts/login.js') }}"></script>
</body>
</html>
【问题讨论】:
标签: javascript python forms flask linker