我正在使用这个http://jqueryvalidation.org/ jquery验证插件。
HTML动态表单将是这样的
forces newbrd1
我的JS代码将是这样的
<form name="baby_book" id="baby_book">
<input name="form_elements[16]" id="form_elements[16]">
<input name="form_elements[17]" id="form_elements[17]">
<input name="form_elements[18]" id="form_elements[18]">
<a class="myfont baby_book_save" href="javascript:void(0)" onclick="validatefilesizeform('save')" >Save</a>
</form>
在应用动态规则时,它不会验证表单。
在控制台中显示此错误
未捕获的TypeError:无法读取属性&#39;表单&#39;未定义的
任何人都可以帮我如何添加动态规则。感谢。
答案 0 :(得分:0)
那是因为当浏览器在validatefilesizeform('save')
属性中找到onclick
时,它会评估该表达式,即运行该函数。使用此语法,您将该评估的结果与onclick
事件相对应,这不是您想要的。
发生Cannot read property 'form' of undefined
错误,因为在那一刻,$(document).ready()
回调尚未执行,并且当函数尝试执行validator.form()
时,该变量已经未定义。它将在$(document).ready()
。
要获得预期的行为并避免错误,您必须将onclick
处理程序更改为此处理程序:
`onclick="function() { validatefilesizeform('save') }"`
在这种情况下,您将注册一个函数作为onclick
属性的值。单击控件时将评估此函数。
更清楚地说明:
// This is the value returned by the function evaluation:
validatefilesizeform('save')
// This is a function
function() { validatefilesizeform('save'); }
所以第二个是可以评估的函数。第一个评估函数。处理程序应始终是函数,而不是值。