2012-08-15 52 views
-1

我有這個必須一次提交的大表單。一個長頁面不是一個選項,所以我決定分開嵌套列表中的部分。這裏是標記的樣子:jQuery Mobile - 嵌套列表中的字段不被引用

<form action="/home/index" data-ajax="false" data-transition="pop" id="xmlForm" method="post"> 

    <ul data-role="listview" data-inset="true"> 

     <li> 
      Section 1 
      <ul data-inset="true"> 
       <li data-role="fieldcontain"> 
        <label for="field1">Field1</label> 
        <input type="text" id="field1" /> 
       </li> 
       <li data-role="fieldcontain"> 
        <label for="field2">Field2</label> 
        <input type="text" id="field2" /> 
       </li> 
      </ul> 
     </li> 

     <li> 
      Section 2 
      <ul data-inset="true"> 
       <li data-role="fieldcontain"> 
        <label for="field4">Field4</label> 
        <input type="text" id="field4" /> 
       </li> 
       <li data-role="fieldcontain"> 
        <label for="field5">Field5</label> 
        <input type="text" id="field5" /> 
       </li> 
      </ul> 
     </li> 

    </ul> 

    <div class="ui-body ui-body-b"> 
     <fieldset> 
      <button type="submit" data-theme="a" name="submit" value="submit-value">Process Script</button> 
     </fieldset> 
    </div> 

</form> 

但是,一旦我點擊提交的「提交」按鈕的唯一值是:

submit:submit-value 

的形式被忽略所有其他領域。 它是由設計還是我錯過了什麼?

回答

0

您的輸入元素應具有name屬性(即<input type="text" id="field1" name="field1" />)。

+0

他們實際上是這樣做的,當我輸入上面的代碼時,我錯過了它。這裏是實際代碼的一部分: 順便說一句,我是使用ASP.NET MVC 4. – CodeMaster2008 2012-08-15 05:18:30

0

我有同樣的問題。如果您查看DOM,JQuery會將每個子列表重新排列到其自己的頁面中。這導致所有表單字段被移出<form></form>標記之外。這就是爲什麼他們不包括在提交。

我將'表單'屬性:<input type="text" id="field2" form="xmlForm"/>添加到所有表單字段。現在,當我提交子列表中的所有字段都包含在內。

+0

文檔建議我們應該避免嵌套列表,以便最終創建多個頁面,每個頁面上都有一個窗體。但是你想出了一個有趣的方法。我會嘗試後者。 – CodeMaster2008 2012-08-31 15:21:56