使用serializeArray()访问自定义属性

时间:2015-08-10 18:58:10

标签: javascript jquery jquery-mobile

我正在使用serializeArray()函数来获取namevalue输入标记的attrubute驻留在form标记中。

<form>
   <input type='text' data-val="Employee Name" value='john' name ='empName'/>
   <input type='text' data-val="Employee id" value='4333' name ='empId'/>
</form>

我可以访问namevalue属性,但如何使用data-val

访问自定义属性serializeArray()

1 个答案:

答案 0 :(得分:4)

在这种情况下你不能使用serializeArray,你可以在map()的帮助下尝试这样的事情

var arr=$('input').map(function(){ return $(this).data('val');}).get();
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
   <input type='text' data-val="Employee Name" value='john' name ='empName'/>
   <input type='text' data-val="Employee id" value='4333' name ='empId'/>
</form>

如果您希望结果作为名称值对,请使用

var arr = $('input').map(function() {
  return {
    $(this).attr('name') : $(this).data('val')
  }
}).get();
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input type='text' data-val="Employee Name" value='john' name='empName' />
  <input type='text' data-val="Employee id" value='4333' name='empId' />
</form>

serializeArray

相同的输出

var arr = $('input').map(function() {
  return {
    name: $(this).attr('name'),
    value: $(this).data('val')
  }
}).get();
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input type='text' data-val="Employee Name" value='john' name='empName' />
  <input type='text' data-val="Employee id" value='4333' name='empId' />
</form>