如何在提交表单之前验证日期格式? 我试着做以下事情。但是,它不起作用。
<p> Date: <br />
<input type="text" id="date" name="date">
</p>
<input type="submit" id="submit" value="Send" />
</fieldset>
</form>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script>
$(function() {
$('#submit').click(function() {
$.validator.addMethod(
"DateFormat",
function(value, element) {
return value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);
},
"Please enter a date in the format dd/mm/yyyy";
);
// validate and process form here
$('#contact').validate({
rules :
date: {
DateFormat : true
}
});
var dataString = $('form[name="contact"]').serialize();
$.ajax({
type: "POST",
data: dataString,
url : "ajax.php",
});
});
});
</script>
答案 0 :(得分:3)
你应该在插件之前加载jquery,如下所示:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
否则验证插件将无效。
编辑 - 你的javascript代码中有一些错误,这是一个有用的小提琴http://jsfiddle.net/Eu8eS/1/
工作代码:
$(function() {
$('#submit').click(function() {
$.validator.addMethod(
"DateFormat",
function(value, element) {
return value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);
},
"Please enter a date in the format dd/mm/yyyy"//removed ;
);
// validate and process form here
$('#contact').validate({
rules :{//added here {
date: {
DateFormat : true
}
}//added here }
});
var dataString = $('form[name="contact"]').serialize();
$.ajax({
type: "POST",
data: dataString,
url : "ajax.php",
});
});
});
答案 1 :(得分:0)
我建议您使用按钮上的submit()
而不是click
,因为您可以在功能中放置preventDefault
和return false
来停止按钮提交。
所以:
if(validation is false) { return false }
此外,似乎存在一些语法错误。尝试使用firebug(每个浏览器,但IE)并在继续前进之前修复它们。