jQuery의 $.serialize()
또는 $.serializeArray()
을 사용하여 직렬화되는 입력 필드 (해당 속성) 유형을 가져올 수 있습니까? 분명히 그것은 헤더에 입력 이름을 전송하지만, 내가 같이 잡을 수 있을지 궁금합니다. textarea
, input type="text"
, input type="radio"
?jQuery의 .serialize()를 사용할 때 입력 필드 유형 얻기
0
A
답변
0
원하는 입력 구조를 쉽게 조작 할 수 있습니다. 여기이 맛
DEMO : http://jsfiddle.net/zd3Pc/
/* array of element objects */
var formMap = $.map($('form :input'), function(el, idx) {
return {
type: el.type,
value: el.value,
name: el.name
};
});
/* object with arrays of name and value properties within type property */
var formObj = {}
$('form :input').each(function() {
if (!formObj[this.type]) {
formObj[this.type] = [];
}
formObj[this.type].push({
name: this.name,
value: this.value
})
})
1
어때? 당신이 태그 및/또는 유형에 따라 다른 작업을 복용, 자신의 ID로 입력을 참조 할 수에서
[{id: "c", name: "x" tag: "TEXTAREA" type: undefined},
{id: "a", name: "z", tag: "INPUT", type: "text"},
{id: "b", name: "y", tag: "INPUT", type: "hidden"},
...]
:
var allInputs = $("#myform *:input").map(function (i,e)
{
return {id: $(e).attr("id"),
name: $(e).attr("name"),
type: $(e).attr("type"),
tag: $(e).get(0).tagName
};
}
);
는이 양식 객체를 제공 http://jsfiddle.net/cranio/6uBLQ/
보기 이 객체를 직렬화하고 전송하는 등의 작업을 수행합니다. hiddens, SELECTs, TEXTAREAs ...
+1
'get()'을 사용하여 jQuery에서 객체 리터럴을 꺼냅니다. – charlietfl
GET 무엇을 할 속성? 직렬화와 결합 하시겠습니까? 또는 다른 곳에 저장 하시겠습니까? 결합하면 ... 구조가 어떻게 생겼 으면 좋겠습니까? – charlietfl
아니요, 해당 API는 그렇게하지 않습니다. 그러나 자신 만의 코드를 작성하여이를 수행 한 다음 매개 변수 목록을 결합 할 수 있습니다. – Pointy
@charlietfl 본질적으로 어딘가에 저장할 속성을 얻고 싶습니다. 내 모델의 필드를 유효화하고 (컨트롤러에 게시되는 동안) 어떻게 든 잘못된 필드를 대상으로 설정하고 (속성을 가져 와서 얻을 수 있음) 오류 메시지를 각각 채 웁니다. –