是否有一个jQuery插件可以序列化一个表单,然后恢复/填充给定序列化值的表单?我知道表单插件可以序列化为查询字符串,但我没有找到任何可以从查询字符串中恢复表单的内容.
我想要做的是序列化表单值,每当表单更改时存储为cookie,然后在页面首次加载时从cookie中恢复表单(如果存在).
我已经找到了这个难题的部分(形式插件,cookie插件,各种自动保存插件不能恢复),但在我从各个部分拼凑一些东西之前,我想确保没有一个很好的罐装解决方案等待对我来说.
谢谢!
吉姆
我有一个页面,上面有一组表格,用于API测试.由于不值得解释的原因,我通常不希望在提交到服务器的过程中包含空字段.如何在提交前从数据中删除空字段?
例如,如果我有一个包含两个字段foo和bar的表单,并且用户将栏留空,我希望服务器看到提交,就好像唯一的字段是foo一样.
我的第一个尝试涉及使用jquery循环遍历字段
$("form").submit(function() {
$(this).children(':input').each(...)
}
Run Code Online (Sandbox Code Playgroud)
并删除该字段.但是a)没有用,并且b)似乎它会从页面上的可见形式中删除该字段,这不是我想要的.
另一种方法可能是遍历字段并手动构造提交字符串,其字段的值不是"".那会有用吗?有更好的想法吗?
我可以,一个jQuery1.9 +软件开发人员,attr()在我的日常工作中"弃用"该方法的使用吗?
如许多问题所示,
关于"使用attr或使用prop?"有很多困惑.,并且,根据我的(开发人员)观点,对于attr()方法的所有用途,我们可以使用prop:
prop(name,newvalue)方法更改所有值.removeProp(name)方法都可以删除.attr(name)方法也会受到影响.关于prop的"强类型":它比"html string value"(例如"checked"vs true)更好.attr浏览器中的方法 返回undefined,如果不是)...嗯,我们需要在某个软件中使用它吗? 在表单中,".val()方法是建议的jQuery方式来获取或设置表单的值"所以,在这个时候(2013年),我没有看到attr在开发新的jQuery代码时使用方法的一个很好的理由 ......但是,换句话说,这就是问题:我有充分的理由attr在我的方法中使用 方法日常任务?
我找到以下jquery/checkbox行为的原因时遇到问题.
$( this.obj + ' table.sgrid-content > thead > tr > th > input.select_all' ).on( 'click' , {grid:this} , function(event){
var grid = event.data.grid;
if( $(this).is(':checked') ){
$( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).attr('checked','checked');
$( grid.obj + ' .sgrid-content > tbody > tr > td > input.select ' ).parents('tr').addClass('ui-state-highlight');
} else {
$( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).removeAttr('checked');
$( grid.obj + ' table.sgrid-content …Run Code Online (Sandbox Code Playgroud) var disableSelection = function(){
$("#elementId").attr("disabled","disabled");
};
var enableSelection = function(){
$("#elementId").removeAttr("disabled");
};
Run Code Online (Sandbox Code Playgroud)
我有以下要求:
添加属性"禁用"适用于IE.然而,当我尝试使用jQuery revomeAttr()方法删除属性时,而不是删除属性:
我试图找出以下代码的vanilla等价物:
$(document).attr('key', 'value');
Run Code Online (Sandbox Code Playgroud)
document- 它不是一个元素,所以你不能打电话setAttribute给它document.documentElement- 返回html标签.这与jquery所针对的"元素"不同$(document)[0] 似乎在Chrome Inspector中返回了一个阴影元素$(document).attr('key', 'somethingUnique') Chrome Inspector中不存在是jQuery创建它自己的阴影元素模拟文档,所以它可以像真正的元素一样对待它吗?你做$(document)什么时jQuery实际引用了什么元素?
如果用户未登录,如何停止重定向到另一页的锚标记?我有一个功能来检查用户是否登录.我想用JQuery或JavaScript来做.这是我到目前为止尝试但没有结果:
<a href="www.somewhere.com" id="yes">Read More</a>
<script type="text/javascript">
$(document).ready(function(){
$('a').click(function(){
var id = $(this).attr('id');
if(id == 'yes'){
//i want to prevent
}else{
//redirect
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 我继续阅读同样的事情:
"直接在DOM元素上存储属性值是有风险的,因为可能存在内存泄漏."
但有人可以更详细地解释这些风险吗?
背景
从jQuery 1.9开始,该.attr(..)方法不再返回属性值,而是我们现在必须使用.prop(..).不幸的是,这也适用于通过属性选择器指定的属性$("input[value=]")
见 http://jquery.com/upgrade-guide/1.9/#attr-versus-prop-
和之间的差异的好,所以讨论.attr和.prop:
我的情况
我目前正在使用选择器,$("input[value=]")以及$("select[value=]")
选择没有值集的输入元素.但是,这不再适用于jQuery 1.9,而是我现在正在做这样的事情:
var hasValue = function () { return !!($(this).val().length); };
var hasNoValue = function () { return !($(this).val().length); };
$("input").filter(hasValue);
$("select").filter(hasValue);
Run Code Online (Sandbox Code Playgroud)
我的实际选择器有点大,检查有或没有值的多个元素,所以现在我不得不将我的1选择器字符串拆分成多个选择器,中间使用.filter(..)方法调用.
题
是否有一个相当于$("[value=]"),$("[value!=]"),$("[value='abc']")它使用属性,而不是属性的?如果没有,有没有比使用.filter(hasValue)和.filter(hasNoValue)方法更清洁的方法?
谢谢
jquery ×10
javascript ×5
attr ×2
html ×2
prop ×2
checkbox ×1
checked ×1
deprecated ×1
form-submit ×1
forms ×1
jquery-1.9 ×1