简而言之,是否有一些自我参考代码将name属性设置为等于id? 例如,
<input name="this.id" id="input1">
很长一段时间,使用.serialize()
需要使用name
属性。假设有一个表单包含许多没有name
属性的输入。我知道,
name
匹配的id
个属性,id
属性然而,在一些关于SO的研究中,我被引导相信如果一个人使用,
<input name="id[]" id="input1">
序列化后,name
会附加id
。在我的测试中,此方法生成id%5B%5D(url编码的id []字符串)。使用任何可用的东西,是否有一个简单的方法来设置name
属性,以便它引用每个输入的id
属性?
答案 0 :(得分:0)
HTML中没有任何内容可以用于引用,因此您需要手动设置它。最佳解决方案,在构建表单时设置它。或者在引用元素时设置它
console.log($("input").attr("name", function (){ return this.name || this.id }).serialize())
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="foo1" value="1" />
<input id="foo2" value="2" />
<input id="foo3" value="3" />
<input id="foo4" value="4" />
&#13;
或者只是编写自己的方法
$.fn.serializeId = function() {
return $(this).map(function(){
return this.id + "=" + encodeURIComponent($(this).val())
}).get().join("&");
}
console.log($("input").serializeId())
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="foo1" value="1" />
<input id="foo2" value="2" />
<input id="foo3" value="3" />
<input id="foo4" value="4" />
&#13;