Development Tip

직렬화에는 숨겨진 필드가 포함되지 않습니다.

yourdevel 2020. 11. 17. 21:13
반응형

직렬화에는 숨겨진 필드가 포함되지 않습니다.


필드가 숨겨져있는 양식에서 직렬화를 실행합니다.이 필드는 게시되어야하는 매우 중요한 필드입니다. jQuery를 통해 쉽게 직렬화 할 수있는 방법이 있습니까? 아니면 내 함수를 작성해야합니까?


Serialize 속성 이있는 모든 활성화 된 input요소 name 포함 합니다 .


둘을 하나의 선택기로 결합하면 효과가 있을까요?

$(":input,:hidden").serialize();

편집 : 방금 위의 방법을 시도했는데 효과가있었습니다. 하지만 $ ( "form"). serialize (); 다른 사람들이 언급 한대로 모든 입력을 자동으로 가져와야합니다.


이 문제에 대한 이상한 변형이 있습니다. 숨겨진 필드에는 이름이 있습니다.

alert($("#myForm").serialize())

모든 숨겨진 필드가있는 창을 올바르게 팝업합니다. 그러나

$.post('myposts.php', $("#myForm").serialize(), function(data) {
            $('#myResult').html(data);
        });

숨겨진 필드가 없습니다. PHP 스크립트가 print_r($_POST)숨겨진 작업을 수행하고 확인란이 잘못된 경우


이 문제를 직접 만났고 해결책을 찾았습니다.

문제는 JQuery가 숨겨진 html 정보를 선택하는 방식과 관련이 있습니다. 숨겨진 필드의 TEXT를 값으로 선택하지 않으므로 value = 속성을 사용해야합니다.

JQUERY에서 설정하려면 $(field).val(yourvalue);


직렬화 기능이 제대로 작동하려면 모든 요소에 이름을 추가해야합니다.


나도이 문제가 있었다. 습관적으로 입력 필드를 />로 닫습니다. 이렇게 닫으면 숨겨진 입력이 작동하지 않는다는 것을 알았습니다.

<input type="hidden" name="someName" value="someValue" /> 

작동하지 않습니다.

<input type="hidden" name="someName" value="someValue" >

작동합니다.

참고 URL : https://stackoverflow.com/questions/1277824/serialize-doesnt-include-hidden-fields

반응형