name属性self引用id

时间:2017-10-05 00:31:38

标签: javascript jquery html

简而言之,是否有一些自我参考代码将name属性设置为等于id? 例如,

<input name="this.id" id="input1">

很长一段时间,使用.serialize()需要使用name属性。假设有一个表单包含许多没有name属性的输入。我知道,

然而,在一些关于SO的研究中,我被引导相信如果一个人使用,

<input name="id[]" id="input1">

序列化后,name会附加id。在我的测试中,此方法生成id%5B%5D(url编码的id []字符串)。使用任何可用的东西,是否有一个简单的方法来设置name属性,以便它引用每个输入的id属性?

1 个答案:

答案 0 :(得分:0)

HTML中没有任何内容可以用于引用,因此您需要手动设置它。最佳解决方案,在构建表单时设置它。或者在引用元素时设置它

&#13;
&#13;
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;
&#13;
&#13;

或者只是编写自己的方法

&#13;
&#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;
&#13;
&#13;