Javascript 如何在提交之前对html元素进行jQuery表单验证
我想对所有三个标签进行表单验证,在验证之后,启用submit按钮,直到验证完成,才启用submit按钮Javascript 如何在提交之前对html元素进行jQuery表单验证,javascript,jquery,html,forms,validation,Javascript,Jquery,Html,Forms,Validation,我想对所有三个标签进行表单验证,在验证之后,启用submit按钮,直到验证完成,才启用submit按钮 <html> <head> <link rel="stylesheet" href="css/bootstrap.css" /> <link rel="stylesheet" href="css/datepicker.css" /> <link rel="stylesheet" href="css/mystyl
<html>
<head>
<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" href="css/datepicker.css" />
<link rel="stylesheet" href="css/mystyle.css" />
<script src="js/jquery-2.2.2.js"></script>
<script src="js/bootstrap-datepicker.js"></script>
<script src="js/moment.js"></script>
</head>
<body>
<form id="report-form">
<div id="report-pane" class="row">
<div class="col-xs-1">
<label>Report:</label>
</div>
<div class="col-xs-2">
<select class="form-control" id="report">
<option value="" selected>Select Report</option>
<option id="rep1" value="10">Report 1</option>
<option id="rep2" value="20">Report 2</option>
<option id="rep3" value="30">Report 3</option>
</select>
</div>
</div>
<!--Date Section-->
<div id="date-pane" class="row">
<!--Script for datepicker-->
<script type="text/javascript">
$(function() {
var now = new Date();
var yearsold = new Date();
yearsold.setFullYear((now.getFullYear() - 2));
$('.datepicker').datepicker({
format: 'mm/dd/yyyy',
startDate: yearsold,
endDate: now
});
var defaultDate = moment().format('DD/MM/YYYY');
$("#datePicker1").val(defaultDate);
$("#datePicker2").val(defaultDate);
});
</script>
<div class="col-xs-1">
<label>Start Date:</label>
</div>
<div class='col-sm-3'>
<input class="datepicker form-control" type="text" id="datePicker1" />
</div>
<div class="col-xs-1">
<label>End Date:</label>
</div>
<div class='col-sm-3'>
<input class="datepicker form-control" type="text" id="datePicker2" />
</div>
</div>
<div id="button-pane" class="row">
<div class="col-lg-12">
<!-- <button class="btn btn-primary">Generate Report</button>-->
<input type="submit" id="requestBtn" class="btn btn-primary" value="Generate Report"></input>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
// Validation Function Needed
});
</script>
</form>
<script src="js/bootstrap.js"></script>
</body>
</html>
报告:
选择报告
报告1
报告2
报告3
$(函数(){
var now=新日期();
var yearsell=新日期();
yearSelled.setFullYear((now.getFullYear()-2));
$('.datepicker').datepicker({
格式:“mm/dd/yyyy”,
起始日期:年月日,
截止日期:现在
});
var defaultDate=moment().format('DD/MM/YYYY');
$(“#日期选择器1”).val(默认日期);
$(“#日期选择器2”).val(默认日期);
});
开始日期:
结束日期:
$(文档).ready(函数(){
//需要验证功能
});
仅当所有表单验证完成时才启用“提交”按钮
范例
我想你想要这样的东西
$(document).ready(function() {
// before validation
$("#submit").attr("disabled","disabled");
// after validation
$("#submit").removeAttr("disabled");
});
如果您坚持需要Jq自定义逻辑
var validationCallBk = function(){
var report = $('#report').val();
var startDate = $('#datePicker1').val();
var endDate = $('#datePicker2').val();
if(report != '' && startDate == somevaliddate && endDate == somevaliddate)
//enable btn
else
//disable btn
};
$('#report').on('change',validationCallBk);
//use the datepicker on select event and call validationCallBk
}))
尝试使用angular,它可以在15分钟内完成这项工作。您建议添加jquery.validat.js进行此简单验证,每个字节的成本都很高。。另外,prop disabled false是invalid为什么我建议是因为他已经在他的代码中使用了jquery。@ShintuJoseph在问题中清楚地提到了如何在jquery.Yes中执行,但不是jquery.validate。jsp所有脚本都非常相似,validate是一个预定义的robost函数,因此我们必须使用此功能。
$(document).ready(function () {
$('#ccSelectForm').validate({
rules: {
inputEmail: {
required: true,
email: true
},
inputEmailConfirm: {
equalTo: '#inputEmail'
}
}
});
$('#ccSelectForm input').on('keyup blur', function () {
if ($('#ccSelectForm').valid()) {
$('button.btn').prop('disabled', false);
} else {
$('button.btn').prop('disabled', 'disabled');
}
});