我想在将数据发送到保护程序之前使用jquery验证一个简单的表单。在这里,我需要在警告框中显示错误消息。我不能使用任何jquery插件来使用验证过程。
这是我的HTML表单 -
<form action="" method="post" class="a">
Name : <input type="text" class="text" name="name" id="name" /> <br/>
Address : <input type="text" class="text" name="address" id="address" /> <br/>
Email: <input type="text" class="text" name="email" id="email" /> <br/>
<input type="button" id="submit" value="Submit" name="submit" />
</form>
如果用户提交此表单而未填写任何表单元素,则需要在单个警告框中显示3条错误消息。喜欢这个
Name can not be empty.
Address can not be empty.
email can not be empty.
如果只有一个或两个字段为空,那么我需要根据情况控制错误信息。
我在这里尝试使用jquery。但警告框一个接一个地显示。
我的jQuery -
$('#submit').on('click', function() {
valid = true;
if ($('#name').val() == '') {
alert ("please enter your name");
valid = false;
}
if ($('#address').val() == '') {
alert ("please enter your address");
valid = false;
}
});
这是FIDDEL
任何人都可以告诉我如何解决这个问题? 谢谢。
答案 0 :(得分:7)
遍历表单中的每个输入元素,并检查它是否有值。如果没有将错误消息附加到字符串,如果valid为false,则稍后警告该字符串。
$('#submit').on('click', function() {
var valid = true,
message = '';
$('form input').each(function() {
var $this = $(this);
if(!$this.val()) {
var inputName = $this.attr('name');
valid = false;
message += 'Please enter your ' + inputName + '\n';
}
});
if(!valid) {
alert(message);
}
});
答案 1 :(得分:3)
如果您只想一次显示1个提醒,则需要检查每个条件的valid
状态:
$('#submit').on('click', function() {
valid = true;
if (valid && $('#name').val() == '') {
alert ("please enter your name");
valid = false;
}
if (valid && $('#address').val() == '') {
alert ("please enter your address");
valid = false;
}
return valid;
});
答案 2 :(得分:3)
尝试以下:
$('#submit').on('click', function() {
var valid = true,
errorMessage = "";
if ($('#name').val() == '') {
errorMessage = "please enter your name \n";
valid = false;
}
if ($('#address').val() == '') {
errorMessage += "please enter your address\n";
valid = false;
}
if ($('#email').val() == '') {
errorMessage += "please enter your email\n";
valid = false;
}
if( !valid && errorMessage.length > 0){
alert(errorMessage);
}
});
在这里工作小提琴:http://jsfiddle.net/WF2J9/24/
我希望它有所帮助。
答案 3 :(得分:0)
表单验证:
此代码用于使用jquery进行简单表单验证。您可以在表单中使用此代码进行验证。
由于
<form action="" method="post" name="ContactForm" id="ContactForm1">
<div id='message_post'></div>
<div class="input-group"> <span class="input-group-addon"></span>
<input type="text" name="fname" class="form-control" placeholder="First Name *">
</div>
<div class="input-group"> <span class="input-group-addon"></span>
<input type="text" name="lname" required="required" class="form-control" placeholder="Last Name *">
</div>
<div class="input-group"> <span class="input-group-addon"></span>
<input type="text" name="phone" required="required" class="form-control" placeholder="Phone (bh) *">
</div>
<div class="input-group"> <span class="input-group-addon"></span>
<input type="text" name="email" required="required" class="form-control" placeholder="Email *">
</div>
<div class="input-group"> <span class="input-group-addon"></span>
<textarea rows="5" name="message" required="required" class="form-control" placeholder="Message *"></textarea>
</div>
<div class="input-group form-buttons">
<span class="input-group-btn">
<input type="submit" id="btn" name="buttn" value="Send Message" class="btn btn-default"/><i class="fa fa-envelope"></i>
</span>
</div>
</form>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.15.0/additional-methods.min.js"></script>
<script>
// just for the demos, avoids form submit
jQuery.validator.setDefaults({
debug: true,
success: "valid"
});
$( "#ContactForm1" ).validate({
rules: {
fname: "required",
lname: "required",
phone: "required",
email: {
required: true,
email: true
},
message: "required",
}
});
</script>