我在这里模拟了我的实际代码。
我需要做的是,如果日期格式无效,则应返回false并且不会提交。
function validateDate(DateField) {
var regDate = /^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$/;
if(DateField.value.length > 0) {
if(regDate.test(DateField.value) == false) {
alert('Date Format should be dd.mm.yyyy!');
document.getElementById("lblTest").style.color = "red";
return false;
} else {
document.getElementById("lblTest").style.color = "black"
return true;
}
} else {
document.getElementById("lblTest").style.color = "black";
return true;
}
}
$("#submit").click(function(){
//condition should be here but right now I dont know what this should be
});
<form method="post">
<label id="lblTest">Date</label>
<input type="test" placeholder="dd.mm.yyyy" id="txtDate" onblur="validateDate(this);">
<input type="button" id="submit" formaction="www.google.com" value="Submit">
</form>
答案 0 :(得分:1)
您可以处理提交事件。如果验证没有通过返回false:
$('form').submit(function(){
//validate here
})
答案 1 :(得分:0)
最好使用HTML5日期类型输入并以您想要的格式解析日期。 这样做会很方便。
更新
这是输入框:
<input type="date" onBlur="fngetDate(this.value)">
以下是Code To Parse It:
function fngetDate(val){
var dateEntered = new Date(val); var myFormat = dateEntered.getDate() + '.'+dateEntered.getMonth()+'.'+dateEntered.getFullYear(); alert(myFormat); }
答案 2 :(得分:0)
如果chrome是唯一的目标浏览器:
使用date type input <input type="date">
其他使用模式<input type="text" pattern="yourRegEx" required>
<form method="post">
<label id="lblTest">Date</label>
<input type="date" required>
<br>
<label>another Date</label>
<input type="text" required pattern="(0[1-9]|1[0-9]|2[0-9]|3[01]).(0[1-9]|1[012]).[0-9]{4}" value="" id="dates_pattern0" placeholder="dd.MM.YYYY">
<input type="text" formaction="www.google.com" value="Submit">
</form>
在这里工作JSFiddle:https://jsfiddle.net/0ay8jkx4/2/
答案 3 :(得分:0)
试试此代码
function validateDate(DateField) {
var regDate = /^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$/;
if(DateField.value.length > 0) {
if(regDate.test(DateField.value) == false) {
alert('Date Format should be dd.mm.yyyy!');
document.getElementById("lblTest").style.color = "red";
$('#submit').attr('disabled', 'disabled');
return false;
} else {
document.getElementById("lblTest").style.color = "black"
$('#submit').attr('disabled', false);
return true;
}
} else {
document.getElementById("lblTest").style.color = "black";
$('#submit').attr('disabled', false);
return true;
}
}
此处,根据日期验证启用或禁用提交按钮
答案 4 :(得分:-1)
就这样做
$("form").submit(function(){
return validateDate(document.getElementById("txtDate"));
});
当然你应该将你的正则表达式修改为:
^(([0-2]{0,1}[1-9]{1})|(3{0,1}[0-1]{0,1}))\.((0[1-9])|(1[0-2]))\.((19[0-9][0-9])|(20((0[0-9])|(1[0-7]))))$