2013-06-25 6 views
1

몇 개의 보이는 입력 필드와 숨겨진 입력 필드가있는 양식이 있습니다. 양식이 제출되면 선택한 값과 함께 제출 된 파일은 양식에있는 순서대로 URL에 추가됩니다. jQuery를 사용하여 url의 매개 변수를 재정렬하는 방법이 있습니까? 유용성 때문에 양식 자체에서 요소를 다시 정렬 할 수는 없습니다.제출 url의 양식 필드 재정렬

"나는 왜 그것을하고 싶습니까?"라는 질문을 알고 있습니다. 그러나 그 이유는 정적 페이지를 치기 때문에 매개 변수의 순서가 정적 인 방법과 정확히 일치해야합니다. 페이지 URL. 단순화 된 형태의 예는 여기

http://someurl?search=all&type=list&names=comm 

:

<form id="search_form" method="get" action="http://www.cbif.gc.ca/pls/pp/ppack.jump" > 

<h2>Choose which names you want to be displayed</h2> 
<select name="names"> 
    <option value="comm">Common names</option> 
    <option value="sci">Scientific names</option> 
</select> 

<h2>Choose how you want to view the results</h2> 

<input type="radio" name="search" value="all" id="complete" checked = "checked" /> 
<label for="complete" id="completeLabel">Complete list</label> 
<br/> 

<input type="radio" name="p_null" value="house" id="house" /> 
<label for="house" id="houseLabel">House plants only</label> 
<br/> 

<input type="radio" name="p_null" value="illust" id="illustrat" /> 
<label for="illustrat" id="illustratLabel">Plants with Illustrations</label> 
<br/> 


<input type="hidden" name="type" value="list" /> 

<input type="submit" value="Submit" /> 
</form> 

내가 얻을 수있는 양식 필드 정적 페이지에 URL을 가지고있는 동안

http://someurl?names=comm&search=all&type=list 

예를 들어, 내 양식은 URL을 반환 값을 $ (# search_form) .serializeArray()를 사용하여 원하는대로 배열을 마사지하지만, 다시 설정하는 방법을 모르겠습니다. 즉, 제출 된 URL에 매개 변수 순서가 포함되도록 직렬화 된 값을 수정하십시오. 나는 이것이 올바른 방향인지 확신 할 수 없기 때문에 어떤 포인터라도 크게 감사 할 것입니다.

+1

왜 URL에 이중 물음표가 표시됩니까? –

+0

오타, 미안 해요. 실제 링크가 아니므로 하나가되어야합니다. –

+0

그런 다음 질문을 수정하고 수정하십시오. –

답변

1

제출 버튼을 한 번 누르면 실제 양식 요소의 순서를 바꾸는 것이 가장 빠를 수 있지만 사용자가 양식을 숨기지 않도록 숨길 수 있습니다.

또 다른 방법은 이름이없는 모든 보이는 양식 요소를 가질 수 있으며, 숨겨진 입력 필드에 모든 데이터를 원하는 순서로 전송하는 것입니다.

그러나이 경우 데이터가 매우 간단하기 때문에 (이스케이프 처리가 필요하지 않음) 일부 양식 요소가 변경 될 때마다 원하는 URL을 작성하고 제출 버튼의 href로 입력 할 수 있습니다 그래서 당신은 정말로 제출하지 않고 단지 링크를 따라 간다.

+0

큰 제안. 두 번째 이름 (이름 없음)을 시도하고 약간의 해결 방법으로 작업했습니다. 라디오 버튼에서 이름을 제거 할 수 없다는 것을 의미합니다. 그러나 요소를 제거하고 숨겨진 필드로 추가하면 작동합니다. 세 번째는 훌륭합니다. 왜 내가 그것에 대해 생각하지 않았는지 모르겠지만 실제로 양식을 제출할 필요가 없습니다. 링크를 따라 가면됩니다. –

+0

첫 번째 제안에 대해서는 호기심에서 벗어나 어떻게 구현할 것인가? 요소를 제거하고 한 번에 하나씩 다시 추가하거나 더 간단한 방법이 있습니까? 감사합니다. –

+0

라디오 버튼의 이름을 잘 잡으십시오 =) 그렇다면 제거하고 원하는 순서로 다시 적용하십시오. DOM에서 요소를 이동하는 방법입니다. – djjeck