我有一个在点击事件后在对话框内打开的表单。我想知道我的jquery中是否存在我没有注意到的语法问题。提交处理程序函数中的所有日志都不记录日志。
HTML:
<div id="dialog" title="Thanks For Volunteering">
<form>
<p>Please provide a contact number. It will only be shared with the comic</p>
<input id="number" name="number" type="text" />
<button id="submit" class="button">Submit</button>
</form>
</div>
JavaScript的:
$("form").submit(function(){
console.log("submit");
$('#number').validate({
rules: {
number : {
required: true
//customvalidation: true
}
},
messages: {
number : {
required: "enter a phone number"
}
},
submitHandler: function(form) {
// do other stuff for a valid form
//submit to parse
console.log("now validated");
var num = $('#number').val();
console.log("validated:" +' '+num);
}
});
});//closes submit
$.validator.addMethod("customvalidation",
function(value, element) {
return (/^[A-Za-z\d=#$%@_]+$/.test(value));
},
"Sorry, no special characters allowed");
答案 0 :(得分:2)
.validate()
方法只是插件的初始化。它永远不会进入submit()
处理程序。只需将其附加到您的表单,并在DOM就绪后将其称为一次。
$(document).ready(function() {
$('form').validate({
.....
您还需要将表单的<button>
元素更改为type="submit"
。
DEMO :http://jsfiddle.net/GJggc/1/
请参阅your previous question上的这个答案,该答案还解决了上述两个JavaScript问题以及详细说明:
答案 1 :(得分:1)
$( '#号')。验证
你有一个错误。它是应该验证的FORM元素,而不是表单字段。
<form id="youform">
....
$('#youform').validate