我正在使用serializeArray()
函数来获取name
和value
输入标记的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>
我可以访问name
和value
属性,但如何使用data-val
serializeArray()
答案 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>