2013-07-11 1 views
0

기본적으로 나는 내 페이지에 여러 가지 양식이 있으며 한꺼번에 모든 양식에 액세스하여 하나의 큰 요청에 추가 할 수 있기를 원합니다. 그것은 크게 작동하지만 마크 업이 다른 폼과 다르므로 드롭 다운 메뉴로 작업하는 데 어려움을 겪고 있습니다 (적어도 필자가 보았던 예제에서는). 내가 프런트 엔드 개발에 새로 온 사람 때문에 나와 함께 곰, 그러나 이것은 내가 지금까지있어 무엇을하시기 바랍니다 :난이도 직렬화 드롭 다운 메뉴

<form id="sorting" class="auto-submit" action="/search" method="get"> 
     <select id="sorting" class="parameter" action="/search" method="get"> 
      % if previous.get("sorting", "false") == "relevance": 
       <option selected="selected" name="sort" value="relevance">Relevance</option> 
       <option name="sort" value="alphabetical">Alphabetical</option> 
      % elif previous.get("sorting", "false") == "alphabetical": 
       <option name="sort" value="relevance">Relevance</option> 
       <option name="sort" selected="selected" value="alphabetical">Alphabetical</option> 
      % else: 
       <option name="sort" value="relevance">Relevance</option> 
       <option name="sort" value="alphabetical">Alphabetical</option> 
      % endif 
     </select> 
    </form> 

나는 현재이 값을 액세스하려고 사용하고 스크립트 (다른 ​​곳에서 시작

function submitForms(retain_page) { 
    var get_data = []; 
    var form_list = $(".auto-submit .parameter"); 
    for (var i in form_list){ 
     get_data.push.apply(get_data, form_list.eq(i).serializeArray()); 
    } 
    var url = document.URL.split("?")[0]+"?"; 
    for (var o in get_data){ 
     if (retain_page === false){ 
      if (get_data[o].name == "page"){ 
       get_data[o].value = 1; 
      } 
     } 
     url = url + (get_data[o].name + "=" +get_data[o].value + "&"); 
    } 
    document.location.href = url.substring(0, url.length-1); 
} 

나는 문제가 나는 요소에 접근하고있어 방법에 꽤 확신하고, 자바 스크립트 콘솔에 내가 찾고 있던 것을 얻을 수 있었다 : 나는 생각하지 않는다하지만) 문제입니다 다음을 실행하여 다음을 수행하십시오.

$(".auto-submit .parameter").eq(4).val() 

그리고 같은 요소를 직렬화하려고하면 빈 응답이 생겨서 어떻게 든 폼에 제출해야한다는 것을 알지 못한다고 생각하게 만듭니다. 그러나 정확히 정의해야하는 부분을 잃어 버렸습니다. . 이것이 바보 같은 질문이라면 미안하지만 어떤 도움을 주시면 감사하겠습니다.

답변

0

그래서 직렬화하는 방법을 알아 냈습니다. 그러나 이것은 제가 코딩 스타일에서 더 심각한 문제를 나타내는 것으로 가정하고 잠시 동안 받아 들일 수 없으며 다른 답변에 완전히 열려 있습니다.

select 요소에 이름을 지정했을 때 갑자기 모든 것이 작동했습니다. 업데이트 된 코드는 다음과 같습니다.

<form id="sorting" class="auto-submit" action="/search" method="get"> 
     <select name="sort" id="sorting" class="parameter" action="/search" method="get"> 
      % if previous.get("sort", "false") == "relevance": 
       <option selected="selected" value="relevance">Relevance</option> 
       <option value="alphabetical">Alphabetical</option> 
      % elif previous.get("sort", "false") == "alphabetical": 
       <option value="relevance">Relevance</option> 
       <option selected="selected" value="alphabetical">Alphabetical</option> 
      % else: 
       <option value="relevance">Relevance</option> 
       <option value="alphabetical">Alphabetical</option> 
      % endif 
     </select> 
    </form>