gpt4 book ai didi

javascript - jQuery 表单验证在失败时不显示错误

转载 作者:行者123 更新时间:2023-11-29 10:11:30 25 4
gpt4 key购买 nike

注意:这是一个 jQuery 编码练习,所以我不允许使用插件或其他模块。

我制作了一个简单、典型的表单,并想检查以确保表单字段已输入且未留空。如果是,则会出现显示错误的相应消息。到目前为止,我还没有成功。

在此之后,我将添加一个功能来确保输入了有效的电子邮件。

我的表格:

<form id="myForm">
<input type="text" placeholder="Email" id="email" name="email">
<span class="error">Email not entered</span><br />
<input type="password" placeholder="Password" id="pword" name="pword">
<span class="error">Password not entered</span><br />
<input type="text" placeholder="First Name" id="fname" name="fname">
<span class="error">First Name not entered</span><br />
<input type="text" placeholder="Last Name" id="lname" name="lname">
<span class="error">Last Name not entered</span><br />
<input type="submit" value="Submit">
</form>

jQuery:

$(document).ready(function(){

// field mapping
var form_fields = {
'email' : 'email',
'pword' : 'password',
'fname' : 'first name',
'lname' : 'last name'
};

// make sure form fields were entered
$('#myForm').on('submit', function(e){
e.preventDefault();

for (var field in form_fields) {
if (!$('#' + field).val()) {
$('#' + field + ' span').addClass('.error_show');
}
}

});

});

CSS:

.error {
display: none;
}

.error_show {
display: inline-block;
color: red;
margin-bottom: 1em;
}

最佳答案

一切正常,除了您随后选择的方式 spanelement加上你添加 error class 的方式.您可以使用 .next 找到下一个elementinput经过验证,然后我想提及以下要完成的更改,这里是 DEMO

for (var field in form_fields) {
if (!$('#' + field).val()) {
$('#' + field).next('.error').addClass('error_show'); //get the next element with class .error
}
}

The way you were adding class was .addClass('.error_show'); and here . should not be given while adding class since its not a selector and is a classname.


更新

你的 selector如果 span 会起作用是child'#'+field因为它是 sibling它无法找到特定的 span与你使用它的方式.. 或者你可以使用 #' + field +' ~ span'#' + field +' + span' . <强> DEMO HERE 。了解更多不同的选择器 here

关于javascript - jQuery 表单验证在失败时不显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643323/

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