2011-01-28 66 views
0

我不是一個Javascript大師。但是在爲應用程序編寫一個Jquery的同時,我發現自己在一個非常棘手的情況下。 風雲作弊:如何在jQuery中解決這個特殊情況?

我有一個不同的領域的形式。包含多個值的字段之一,例如電話號碼。我正在填充這些數字在彈出 - 燈箱。現在,我面臨的問題是我想單擊表單按鈕來提交表單,但我的號碼來自彈出框。好吧,讓我試着描述整個流程: -

  1. 窗體有多個字段。對於一個字段 - 數字,我顯示了彈出框。
  2. 我點擊彈出框中的一個按鈕,發送給我的表單。但我無法在表格中找到這些數字。
  3. 最終點擊是在表單按鈕上發送所有信息到服務器端。

但我沒有得到這些數值在這裏的形式。那麼,任何人都可以建議我解決這個問題的最好方法嗎?

注意: - 我盡力以清晰的方式提出我的問題。但如果你們找不到我的話非常清楚,對不起!

+0

是同一個源窗口中的彈出窗口?也許向我們展示代碼? – Victor 2011-01-28 00:33:44

回答

0

如果我正確理解你的問題,一種解決方案是設置關閉彈出窗口/燈箱的控件,首先在底層窗體上填充一些隱藏的字段。從收藏夾窗口中的表單元素搶值:

$('#the_lightbox').find('.multiple_phone_fields') 
    .each(function(i,e){ // for each field 
    $('<input name=' + $(this).attr('name') + 'type="hidden"/>') // new, hidden 
     .val(this.value) // set hidden field value from this field 
     .appendTo('#the_main_form'); // and add to the underlying form 
}); 

當你然後提交#the_main_form,那些隱藏字段和值會來。很明顯,你需要調整選擇器來獲取彈出窗口或燈箱的細節。

1

我不能完全肯定我理解,但我會採取刺傷:

選項1)使用$(選擇寫從收藏夾中的所有值從回第一種形式).VAL();

選項2)將整個燈箱表單複製到第一個窗體中的隱藏div中。

1

彈出框元素可能被添加到窗體外部,因此當您提交表單時,彈出窗口中的任何輸入元素都不會被提交。要檢查這個,使用DOM Inspector(例如firefox中的firebug或ie8或chrome中的開發工具)來查看包含lightbox的元素(通常在頁面的末尾)的位置。

爲了解決這個問題,您可能會配置燈箱以在窗體中添加它的div,或者只需使用一點javascript來獲取彈出窗口上的input元素的值並填充實際上在提交之前的表單。

1

嗨幫助 。它會在那裏創建一個彈出窗口,您可以編輯數據,然後填充到關閉彈出窗口之前由opener引用的主頁面。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
    <TITLE> New Document </TITLE> 
    <META NAME="Generator" CONTENT="EditPlus"> 
    <META NAME="Author" CONTENT=""> 
    <META NAME="Keywords" CONTENT=""> 
    <META NAME="Description" CONTENT=""> 
</HEAD> 
<script type="text/javascript"> 
<!-- 
function fn() { 
var popupwin = window.open("","","width=500,height=300"); 
popupwin.document.open(); 
popupwin.document.write("<html><head><script>function onOk(){opener.parent.document.getElementById('txtnumberfield').value=document.getElementById('txtpopup').value; window.close();}</script></head><body>Here are some popup values <input type='text' value='value from popup' name=txtpopup id=txtpopup />"+ 
"<input type=button onclick='onOk()' value='Done editing' /></body></html>"); 
popupwin.document.close(); 


} 
//--> 
</script> 
<BODY> 
<form action="#"> 
Number <input type="text" id="txtnumberfield" /> <input type="button" value="open popup" onclick="fn();" /><br/> 

<input type="submit" /> 
</form> 
</BODY> 
</HTML>