使用验证器插件 Jquery 验证动态输入表单元素
Validate dynamic input form elements using Validator Plugin Jquery
我正在使用这个 http://jqueryvalidation.org/jquery验证插件。
HTML动态表单将是这样的
<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>
我的JS代码将是这样的
<script type="text/javascript">
var validator="";
$(document).ready(function(){
var max_length_rules= <?php echo json_encode($valid_rules); ?>;
validator=$("#baby_book").validate();
$.each(max_length_rules,function(k,v){
$.each(v, function(key, value){
$('input[id="'+key+'"]').rules('add',"required");
});
});
});
function validatefilesizeform(type)
{
if(type == 'save')
{
document.baby_book.sec_submit.value="save";
if(validator.form())
{
document.baby_book.submit();
}
}
</script>
在应用这样的动态规则时,它不会验证表单。
在控制台中,它显示此错误
未捕获的类型错误:无法读取未定义的属性"形式">
谁能帮我如何添加 dyanmic 规则.谢谢。
这是因为
当浏览器在 onclick
属性中找到validatefilesizeform('save')
时,它会计算该表达式,即运行函数。使用此语法,可以将该评估的结果分配给 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'); }
所以第二个是可以计算的函数。第一个计算函数。处理程序应始终是函数,而不是值。
相关文章:
- Angular2 Javascript 验证 输入数字而不是字符
- 在 Angular2 中构建多部分/表单数据 POST 请求并验证输入类型文件
- 如何通过 JavaScript 验证输入字段中的值
- jQuery 验证输入文本是否仅接受数字、单词或日期
- 如何javascript验证<输入类型=文件多个>如果浏览器不支持多个
- 用于验证输入的JavaScript正则表达式超过0个字符
- 验证输入字段和块字符
- Angularjs iu.mask带有日期的验证输入
- 验证输入,更新<td>属性以匹配验证状态
- 通过点击表单外的按钮,使用required和angularjs验证输入字段
- 基于自身输入变化的角度验证输入
- 使用 javascript 验证输入数组
- 年龄验证输入框 - 计算是否超过 18 岁
- JQuery 验证输入类型文件在服务器端失败
- 如何使用jquery或javascript验证输入框的内容
- JSF 和 RichFaces 用于实时验证输入框
- Javascript/Jquery:使用数字范围验证输入
- 如何在更改时验证输入字段并启用提交按钮
- 编码器点火器未验证输入文本
- 在复选框选择后验证输入类型文本