2013-07-11 35 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); 
} 

我敢肯定這個問題是我如何訪問元素,在JavaScript控制檯中我能得到什麼,我一直在尋找通過運行以下內容:

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

當我嘗試序列化相同的元素時,我得到一個空的響應,這讓我覺得它不知道它應該在表單中提交,但我對於我應該在何處定義它。對不起,如果這是一個愚蠢的問題,但任何幫助表示讚賞。

回答

0

所以,我想出瞭如何序列化這個,但我認爲這是我的編碼風格的更深層的問題的指示,所以我不會接受這一段時間,並完全接受其他答案。

當我給選擇元素一個名字突然工作。以下爲更新代碼:

<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>