JQuery - Serialize()一个不是表单的对象,但它是一个表单的内部和部分

EBA*_*BAG 2 javascript jquery

我正在尝试序列化表单中的一些内容:

<form>
  <input ...>
  <input ...>
  <div id=div1>
    <input name=input1 ...>
    <input name=input2 ...>
  </div>
</form>

<script>
  jQuery("#div1").serialize();
</script>
Run Code Online (Sandbox Code Playgroud)

在此代码中,serialize()函数不会序列化input1和input2.即便我尝试过

jQuery("<form>" + jQuery("div1").html() + "</form>").serialize()
Run Code Online (Sandbox Code Playgroud)

它确实将输入序列化,但所有值都是空的!它就像它没有分配用户输入的值:input1=&input2=

那里有解决方案吗? (我需要这样做的原因是这个页面是一个ASP.NET页面,因为ASP.NET标准是基于单个表单的,所以我必须处理这种情况)

epa*_*llo 12

更好的解决方案是使用:input选择器,因为它获取所有表单元素

jQuery('#div1 :input').serialize();
Run Code Online (Sandbox Code Playgroud)

  • 它需要一个"#div1"和":input"之间的空格.否则它会查找`#div1`,它是类型为`:input`的(*本身*) (2认同)

Bri*_*all 6

我相信这会奏效:

jQuery('#div1 input').serialize()

  • jQuery('#div1 input,textarea').serialize()可以解决这个问题 (3认同)