背景:我有一个 jQuery 验证脚本,它几乎用于我所有的网页,允许客户端验证(我也做服务器端验证)。除了每个表单的特定“规则”之外,我所有页面的 javascript 都是相同的。
在呈现 HTML 页面之前,每个页面的规则都从我的控制器插入到 php 变量 $jquery_validation 中。这意味着我可以使用适当的客户端验证规则动态生成每个 html 页面和表单。
以下是我的所有 html 页面上当前加载的 javascript 代码:
$(document).ready(function(){
$('#signupform').validate({
wrapper: 'span class="error"',
meta: 'validate',
highlight: function(element, errorClass, validClass) {
if (element.type === 'radio') {
this.findByName(element.name).addClass(errorClass).removeClass(validClass);
} else {
$(element).addClass(errorClass).removeClass(validClass);
}
var error = $(element).parent().find('span.error');
error.show();
},
unhighlight: function(element, errorClass, validClass) {
if (element.type === 'radio') {
this.findByName(element.name).removeClass(errorClass).addClass(validClass);
} else {
$(element).removeClass(errorClass).addClass(validClass);
}
$(element).parent().find('span.error').hide(0, function() {
$(element).parent().find('span.valid').fadeIn(200);
});
},
<?=$jquery_validation?>);});
</script>
最后的 $jquery_validation 变量包含每个页面的“规则”,这些规则明显不同,具体取决于表单。它给出的输出示例是:
"rules":{"username":{"required":true,"remote":{"url":"http:\/\/localhost\/mytest\/public_html\/welcome\/remote","type":"post"}},"onkeyup":false});});
该功能现在正在运行,一切都很好。
问题:有没有办法让我的 .js 文件中包含我的验证 javascript 函数(因此可以对其进行压缩等) - 并且仍然为每个页面动态加载验证的“规则”部分?
如果需要,我可以更改 $jquery_validation 的“输出”和语法 - 但关键是我需要能够动态输出每个页面的规则