javascript – 获取指定的jQuery变量以“重新查询”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 获取指定的jQuery变量以“重新查询”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1882字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 获取指定的jQuery变量以“重新查询”](/upload/InfoBanner/zyjiaocheng/765/ceaa1463b7db4fd7936fa92224f3f024.jpg)
我正在尝试使用jQuery来构建一个自制的验证器.我认为我在jQuery中发现了一个限制:当将jQuery值赋给json变量时,然后使用jQuery将更多DOM元素添加到适合变量查询的当前页面,似乎没有办法访问这些DOM添加到页面的元素符合json变量的查询.
请考虑以下代码:
var add_form = {
$name_label: $("#add-form Label[for='Name']"),
$name: $("#add-form #Name"),
$description_label: $("#add-form Label[for='Description']"),
$description: $("#add-form #Description"),
$submit_button: $("#add-form input#Add"),
$errors: $("#add-form .error"),
error_marker: "<span class='error'> *</span>"
}
function ValidateForm() {
var isValid = true;
add_form.$errors.remove();
if (add_form.$name.val().length < 1 ) {
add_form.$name_label.after(add_form.error_marker);
isValid = false;
}
if (add_form.$description.val().length < 1) {
add_form.$description_label.after(add_form.error_marker);
isValid = false;
}
return isValid
}
$(function(){
add_form.$submit_button.live("click", function(e){
e.preventDefault();
if(ValidateForm())
{
//ajax form submission...
}
});
})
这里有一个例子:http://jsfiddle.net/Macxj/3/
首先,我创建一个json变量来表示html添加表单.然后,我创建一个函数来验证表单.最后,我将表单的提交按钮的click事件绑定到验证表单.
请注意,我正在使用jQuery after()方法在表单中的每个无效字段标签后放置一个包含’*’的span.另请注意,在重新验证之前,我正在从表单中清除先前提交尝试的星号(这是失败的).
显然,调用add_form.$errors.remove();不起作用,因为$errors变量仅指向在创建时匹配其查询的DOM元素.在那个时间点,没有标签带有error_marker变量的后缀.
因此,jQuery变量在尝试删除它时不识别它的查询的匹配元素,因为它们在首次分配变量时不存在.如果一个jQuery变量HAD AN eval()METHOD会重新评估其包含的查询以查看是否有任何新的DOM元素匹配它,那将是很好的.可惜…
有什么建议?
提前致谢!
解决方法:
对于将要更改的对象,而不是使JSON对象引用静态值,使其成为一个函数:
$errors:function(){return $(“#add-form .error”); },
因为它是一个函数,所以每次调用add_form时都会重新计算错误字段.$errors().
内容总结
以上是互联网集市为您收集整理的javascript – 获取指定的jQuery变量以“重新查询”全部内容,希望文章能够帮你解决javascript – 获取指定的jQuery变量以“重新查询”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。