2012-11-30 42 views
0

我有一個表單。在這個表單中,我使用了一個模式對話框,通過點擊按鈕顯示。該對話框包含一個包含相同表單的一些輸入字段的div。其內容絕不會發送到服務器(POST方法),所以我就開始調試一點點......失去表單域 - 使用jQuery對話框模式

  1. 當我不打開的對話框中,可用字段(服務器端)
  2. 當我打開對話框並在字段中輸入一些值時,字段不再傳輸(不可用)
  3. 如果我不隱藏(顯示:無)div - 字段在窗體加載時可見 - 並且我填寫了它,而不使用模態對話框,就會發送。

- >爲什麼對話框從我的窗體中「刪除」字段?

感謝您的任何意見! 烏爾斯

HTML

<button type="button" id="opener">other, please click here</button> 

<div id="dialog-modal" title="type in the new elements:" style="display: none"> 
<p>country:<input type="text" class="small" id="othercountry" name="othercountry" value="" </p> 
<p>ccode:<input type="text" class="small" id="othercountryCode" name="othercountryCode" value=""></p></div> 

的Javascript

<script> 
$("#opener").click(function() { 
    $("#dialog-modal").dialog({ 
     height: 140, 
     modal: true 
    }); 
    $("#dialog-modal").bind('dialogclose', function(event) 
     { do some other things, not relevant for the form } 
    ); 
}); 
</script>  

的jQuery 1.8.2

+0

在我發佈的有限javascript和html中沒有任何內容可能導致問題。您可能需要提供整個表單標記和對話框JavaScript。 – Enrico

回答

0

再也看不到你的表單標籤,純粹猜測的形式標記必須內找到模態div。

<div id="dialog-modal" title="type in the new elements:" style="display: none"> 
    <form> 
     <p>country:<input type="text" class="small" id="othercountry" name="othercountry" value="" </p> 
     <p>ccode:<input type="text" class="small" id="othercountryCode" name="othercountryCode" value=""></p> 
    </form> 
</div> 
1

默認情況下,jQuery的追加對話框的身體,所以你可能將它移回你的表格裏。這是可以做到這樣的:

$('#dialog-modal').parent().appendTo($('form:first')) 

的錯誤票

+0

這似乎不適用於模態對話框,因爲對話框本身會變成幻影,並且您無法點擊任何字段。 – NickG

0

here我有我居然找到工作這個同樣的問題,並沒有什麼。正如其他人先前所述,jquery對話框從標記內移動並附加到body標籤。這就是爲什麼當你沒有打開對話框時它工作的原因。一旦打開對話框就會移動到body標籤和form標籤之外。我通過在對話框中放置一個表單標籤來解決這個問題,所以無論它在哪裏,它總會有一個表單提交給服務器。通常,您有一個包含對話標記的div標記,該標記在必要時隱藏並顯示。只需在此div內放置一個表單標籤,但在所有輸入標籤之外,因此當您單擊按鈕時,它們都會被提交。你可以有多個表單標籤,但你不能嵌套它們,所以你應該把所有的jquery對話框直接放在body標籤的下面,但是不要放在任何其他form標籤之外,這樣如果對話框還沒有顯示,它們就不會發生衝突。