我正在尝试使用http://docs.jquery.com/Plugins/Validation实现 Jquery 验证:
我的设计方案:
我的输入元素:
<form action="submit.php" id="form_id"> <input type="text" class="val-req" id="my_input" name="myval" /> <input type="button" onclick="validate_form('form_id', function() { $('#form_id').submit(); })" /> <span id="val-msg" class="my_input"></span> </form>
然后,在 dom 准备就绪时:
$(document).ready(function() { $('.val-req').rules('add', {required:true}); });
验证方法:
function validate_form(form_id, callback) { var form = $('#'+form_id); $('.val-req').each(function() {$(this).rules('add', {required:true});}); $(form).validate({ errorElement: "span", errorClass: "val-error", validClass: "val-valid", errorPlacement: function(error, element) { $('#val-msg.'+$(element).attr('id')).innerHTML(error.html()); }, submitHandler: callback }); }
按照我的预期,它应该在表单的占位符范围内显示错误消息。
但是,问题
Chrome 控制台上的错误:未捕获的类型错误:无法读取未定义的属性“设置”
它也在其他浏览器上给出错误。然后,我试图找出问题并发现:
$('.val-req').rules('add', {required:true}); # This is causing the error
根据我的理解和文档-> 这应该是正确的。
为什么这会导致 TypeError,我该怎么做才能解决它?