我之前发布过这个,我对 jQuery 验证插件成为解决方案的可能性感到非常兴奋。也许我只是错过了一些东西......
我想要做的是使用 jQuery.load()
将表单加载到 div 中,然后使用 jQuery 验证插件来验证页面。我的页面 100% 使用 jQuery .load()
,所以除了 jQuery 表单验证之外的所有东西都可以正常工作。我让验证插件在普通静态页面上运行良好,但是一旦我尝试在现有站点上使用.load()
它来实现它,它就会停止按预期运行。
jQuery 不会在提交时提醒用户有关无效字段,而是重新加载页面并将它们带回主页。我究竟做错了什么?
将页面加载到位于索引文件头部的内容 div 的脚本:
<script>
$(document).ready(function(){
$formLoad = false;
$('div#happenings').load('happenings.html #happenings_content');
$('div#menu_content').load('home.html #contentA');
$('div#page_content').load('home.html #contentB');
$("div#menu ul li a").click(function() {
var ifContact = $(this).attr('href');
$('div#menu ul li a').removeClass("active").addClass("inactive");
$(this).removeClass("inactive").addClass("active");
$('div#menu_content').load($(this).attr('href') + ' #contentA');
$('div#page_content').load(($(this).attr('href') + '#contentB'),
function(){
if (ifContact == 'contact.html') { extra bit goes here });
}
}
); <!--FINISH LOADING PAGE CONTENT-->
return false;
});
});
</script>
位于索引文件头部的 jQuery 验证脚本:
<script type="text/javascript">
(function($,W,D) {
var JQUERY4U = {};
JQUERY4U.UTIL =
{
setupFormValidation: function()
{
//form validation rules
$("#register-form").validate({
rules: {
fullname: "required",
email: {
required: true,
email: true
},
},
messages: {
fullname: "Please enter your firstname",
email: "Please enter a valid email address"
},
submitHandler: function(form) {
form.submit();
}
});
}
}
//when the dom has loaded setup form validation rules
$(D).ready(function($) {
JQUERY4U.UTIL.setupFormValidation();
});
})(jQuery, window, document);
</script>
以及从contact.html中的div加载的表单:
<div id="mailform">
<form action="" method="post" id="register-form" novalidate="novalidate">
<div id="form-content">
<div class="fieldgroup">
<label for="fullname">Name:</label>
<input type="text" name="fullname">
</div>
<div class="fieldgroup">
<label for="email">Email</label>
<input type="text" name="email">
</div>
<div class="fieldgroup">
<label for="subject">Subject</label>
<input type="password" name="password">
</div>
<div class="fieldgroup">
<label for="comment" class="commenttop">Comment:</label>
<textarea id="comment" name="comment" cols="60" rows="10"
maxlength="1000"></textarea>
</div>
<div class="fieldgroup">
<input type="checkbox" name="mailinglist" value="Please sign me up
for your mailing list!" checked="yes" />
<label for="mailinglist">Please sign me up for your mailing list!
</label>
</div>
<div class="fieldgroup">
<input type="submit" value="Register" class="submit">
</div>
</div>
</form>
</div> <!-- END MAILFORM-->