使用 jQuery 验证输入字段时显示相关消息
show pertinent messages when validating input fields using jquery
>我有两个输入字段,用户名和密码。我对每个空值执行基本检查,如果任何一个为空,则返回为 false,因此不会执行 .$ajax 请求。这行得通。
我想寻求帮助以增强对空值的检查,并返回 false。
如果输入了电子邮件,但没有密码,则我收到密码消息错误,并返回false,但是如果随后我输入密码,没有电子邮件,则会收到输入电子邮件错误,但即使之前输入的值未删除,密码错误仍保留在页面上。 这最终导致两条消息都出现在页面上, 这是误导。
密码也会发生同样的情况,步骤相同。
对于我的任务来说,在执行 .$ajax 请求之前,确保输入值并正确显示相关消息非常重要。
下面是我的脚本副本。
我希望有人有时间给我一些帮助。
谢谢。
<script type="text/javascript">
function ShoppingCartLogin() {
var userid = $(".YourOrder_MainLoginEmail").val();
var password = $(".YourOrder_MainLoginPassword").val();
var url = "/ShoppingCart/ShoppingCartLogin";
if (userid == "") {
$('.YourOrder_loginError').css('visibility', 'visible');
$('.YourOrder_loginError').text('Enter your e-mail address.');
return false
}
if (password == "") {
$('.YourOrder_loginError_password').css('visibility', 'visible');
$('.YourOrder_loginError_password').text('Enter your password.');
return false
}
$.ajax({
url: url,
type: "POST",
dataType: "json",
data: { userId: userid, pass: password },//{ userId: userid, pass: password },
cache: false,
success: function (result) {
if (result.success == "Valid") {
// hide the login form and clear and hide error
$('.YourOrder_loginError').text('');
$('.YourOrder_loginError').css('visibility', 'hidden');
$('.YourOrder_loginForm').css('visibility', 'hidden');
// show the shipping address section
$('.YourOrder_ShipAddress').css('visibility', 'visible');
location.reload();
}
if (result.error == "Invalid") {
// hide shipping address section
$('.YourOrder_ShipAddress').css('visibility', 'hidden');
$('.YourOrder_loginError').css('visibility', 'visible');
$('.YourOrder_loginError').text('The user name or password provided is incorrect.');
}
}
});
}
我会简化脚本并在验证之前隐藏所有消息。对于以下 HTML:
<form class="YourOrder_loginForm" method="post" action="https://">
<p>
<input class="YourOrder_MainLoginEmail" type="email" placeholder="email" />
<span class="msg_error YourOrder_loginError">Please enter your email.</span>
</p>
<p>
<input class="YourOrder_MainLoginPassword" type="password" placeholder="password" />
<span class="msg_error YourOrder_loginError_password">Please enter your password.</span>
</p>
<p>
<input class="YourOrder_MainLoginEmail" type="submit" value="Login" />
<span class="msg_error YourOrder_loginError_general">The user name or password provided is incorrect.</span>
</p>
</form>
和这个 CSS:
.YourOrder_loginForm {
position: relative;
}
.loading {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
width: 100%;
background: rgba(255, 255, 255, .5);
display: none;
}
.msg_error {
color: red;
display: none;
}
使用此脚本:
function ShoppingCartLogin(e) {
var userid = $(".YourOrder_MainLoginEmail").val();
var password = $(".YourOrder_MainLoginPassword").val();
/* Hide all errors */
$('.msg_error').hide();
if (!userid) $('.YourOrder_loginError').show();
if (!password) $('.YourOrder_loginError_password').show();
if (!userid || !password) return false;
/* No errors, proceed */
$('.loading').show();
var url = "http://jsonplaceholder.typicode.com/users/1"; /* Use your url here */
$.ajax({
url: url,
type: "get",
/* You should use POST here */
dataType: "json",
data: {
email: userid,
website: password
},
cache: false,
success: function (result) {
if (result.success == "Valid")
/* No need to hide anything, you reload the page */
location.reload();
if (result.error == "Invalid") $('.YourOrder_loginError_general').show();
$('.loading').hide();
},
error: function () {
$('.loading').hide();
}
});
/* Prevent form submition */
return false;
}
$('.YourOrder_loginForm').on('submit', ShoppingCartLogin);
工作示例。
相关文章:
- 如果下载不成功,如何显示消息
- 如何在 jquery 中的速率按钮下方显示消息状态
- 删除所有可拖动元素后如何显示消息
- php表单验证n在表单上显示消息3秒钟并淡出
- 单击“点赞”按钮时显示消息
- javascript初学者-无法在屏幕上显示消息框
- 在表单提交后显示消息的方法
- 遍历列表,并在jQuery为空时显示消息
- 在jquery幻灯片登录表单上显示消息
- 如果文本筛选器在ng重复中未返回结果,则显示消息
- 以javascript显示消息框
- 在angular 1中,我如何检测angular是否受支持,并在屏幕上显示消息's不受支持
- 浏览器全屏显示,按键时不显示消息
- 选取随机数组元素,将其移除,并在没有更多可用元素时显示消息
- 仅当浏览器不是Google Chrome时显示消息
- 如果所有李都被隐藏,则显示消息
- 在提交表单和显示消息之前,如何检查表单输入是否全是数字
- 如果使用 JavaScript 登录失败,如何在登录页面中显示消息
- j查询验证未显示消息
- 为什么不显示消息