2015-08-10 2 views
2

Я использую функцию serializeArray() для извлечения name и value attrubute входных тегов находится в теге form.Доступ к настраиваемому атрибуту с помощью serializeArray()

<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()

ответ

3

В этом случае вы не можете использовать 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>

Смежные вопросы