【发布时间】:2012-05-18 10:52:31
【问题描述】:
我正在尝试使用 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,我可以做些什么来解决它?
【问题讨论】:
-
仅供参考,我已经开始讨论这个问题here。
-
有一个混乱 - 一个错字解决了这个问题。我否认这一点。我在写问题时打错了字,后来更正了——但这根本不是问题。
-
问题仍然存在,我完全不知道我的实现出了什么问题。
-
@AndrewWhitaker 感谢先生的努力。 Stackoverflow 真的是一个有价值的社区!
-
没问题——我已经添加了一个希望能有所帮助的答案。
标签: javascript jquery jquery-validate