Nice programing

jQuery에서 작동하지 않는 양식 직렬화

nicepro 2020. 12. 27. 20:47
반응형

jQuery에서 작동하지 않는 양식 직렬화


제발 한번 살펴보고 내가 어디에서 잘못되고 있는지 깨닫도록 도와 주시겠습니까? 다음은 jsfiddle 링크입니다. http://jsfiddle.net/Hitman666/QcEkj/1/ 여기에도 해당 코드가 있습니다.

HTML :

<form action="#" id="gamesForm">
    <p>                                                        
        <input id="gName" type="text" class="medium" />
        <span class="notification information">Game name</span>
    </p>

    <p>                            
        <span class="notification information">Enabled:</span>
        <input id="gEnabled" type="checkbox" />              
    </p>

    <br />
    <!--Additional data for extra type-->
    <div id="extraAdditionalData" class="hidden">                            
        <p>
            <input id="rRacers" type="text" class="medium" />
            <span class="notification information">Racers</span>
        </p>

        <p>
            <input id="rVideoSet" type="text" class="medium" />
            <span class="notification information">Video set</span>
        </p>                                                         
     </div>                
</form>

<a href="#" id="saveConfiguration" class="graybuttonBig">Save everything!</a> 

자바 스크립트 :

$(document).ready(function(){
    $("#saveConfiguration").click(function(){
        alert( $("form").serialize() );   
    });
});  

내가 얻는 것은 빈 문자열입니다.


양식 요소를 제공해야합니다 name!

이것은 jQuery와 무관합니다. 모든 양식 요소에는 name양식 제출이 성공적인 제어 로 간주 되어야합니다 .

성공적인 제어는 제출에 "유효"합니다. 모든 성공적인 컨트롤에는 제출 된 양식 데이터 세트의 일부로 현재 값쌍을 이루는 컨트롤 이름이 있습니다. 성공적인 제어는 요소 내에 정의 되어야하며 제어 이름 이 있어야합니다 .FORM

jQuery는 이름이없는 요소를 무시합니다 (또는 요소를 가져 오는 방법에 따라 양식 자체에 참조가 없기 때문에 보지 못할 수도 있음).


serializeArray()올바르게 직렬화 하는 것을 방해 하는 다른 것은 disabled입력입니다. serializeArray비활성화 된 입력이 양식과 함께 제출되지 않는 것과 거의 같은 방식으로 비활성화 된 입력을 직렬화하지 않습니다.

성공적인 제어는 제출에 "유효"합니다.

  • 비활성화 된 컨트롤은 성공할 수 없습니다.

출처


name입력 필드에를 추가 하십시오.

<input type='text' name='give_some_name' />

에서 이 바이올린 난을 추가 name하고 그것을 잘 작동합니다.


문제는 다음과 같은 형식을 선택하려는 것입니다.

$("form");

그러나 이것은

getElementsByTagName("form");

이것은 객체의 배열을 반환합니다.
따라서 대신 #id 선택기를 사용하거나 색인을 사용하여 양식에 액세스 할 수 있습니다. 도움이 되었기를 바랍니다.


우선, 텍스트 상자 등과 같은 모든 입력 컨트롤에 이름 속성을 부여해야합니다. 그런 다음 ID가 충돌하는지 여부를 확인하십시오. 양식에 대해 동일한 ID가 있고 문제가있는 섹션이 하나 있습니다.


그리고 당신의 참조가 잘못되었습니다. 시험:

$("#gamesForm").serialize();

ReferenceURL : https://stackoverflow.com/questions/6580450/serialize-form-not-working-in-jquery

반응형