我在html页面上有一个日期文本框。我想在运行时使用jQuery格式化dd-mm-yyyy来验证它。如果输入无效格式,文本框背景应变为红色。
我正在使用以下内容但未能这样做。
<script>
jQuery(document).ready(function(){
jQuery('#submit').click(function () {
var dateReg = /^\d{2}\-\d{2}\-\d{4}$/;
if(!dateReg.test(date.val())){
date.addClass('highlight');
jQuery(date).focus();
return false;
} else date.removeClass('highlight');
});
});
</script>
<style>
.highlight { background: #FFE6E7; }
</style>
<body>
<form>
<input type="text" name="date"/> <em>(dd-mm-yyyy)</em><br>
<input type="submit" value="submit" id="submit"/>
</form>
</body>
...
我尝试了但无法实现它:( 其次,我希望用户输入值后立即进行验证。没有点击提交。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
你的正则表达式很好,但你的jQuery不是:
jQuery('#date').focus
你可以在按键上使用:
jQuery('#submit').keypress
或者您可以使用焦点,当失去焦点时触发:
jQuery('#submit').focusout
但请务必检查后端! annyone可以禁用javascript
答案 1 :(得分:0)
我自己制作了一个新代码。它也正在开发提交按钮OnClick,但突出显示它的目的已经实现。
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled 1</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
$(function() {
$('#btnSubmit').bind('click', function(){
var txtVal = $('#txtDate').val();
if(isDate(txtVal))
$('#txtDate').removeClass('highlight');
else
$('#txtDate').addClass('highlight');
});
function isDate(txtDate)
{
var currVal = txtDate;
if(currVal == '')
return false;
var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/; //Declare Regex
var dtArray = currVal.match(rxDatePattern); // is format OK?
if (dtArray == null)
return false;
//Checks for dd/mm/yyyy format.
dtDay = dtArray[1];
dtMonth= dtArray[3];
dtYear = dtArray[5];
if (dtDay < 1 || dtDay > 31)
return false;
else if (dtMonth < 1 || dtMonth> 12)
return false;
else if ((dtMonth==4 || dtMonth==6 || dtMonth==9 || dtMonth==11) && dtDay ==31)
return false;
else if (dtMonth == 2)
{
var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
if (dtDay> 29 || (dtDay ==29 && !isleap))
return false;
}
return true;
}
});
</script>
<style>
.highlight { background-color:#FFE6E7; }
</style>
</head>
<body>
<br/><br/>
Date : <input type="text" id="txtDate" /> (dd/mm/yyyy)
<br/><br/>
<input type="button" value="ValidateDate" id="btnSubmit"/>
</body>
</html>