2013-03-13 91 views
2

我一直在研究,現在需要一些輸入。有人會告訴我這個代碼會在alert中顯示下拉值嗎?當文本框的值正確顯示時,它當前顯示爲「未定義」。謝謝。如何從FancyBox中獲取下拉值?

file1.ftl

<html xmlns="http://www.w3.org/1999/xhtml"> 
<body> 
    <button id="displayFancyboxButton">Display Fancybox</button> 
    <#include "file2.ftl"> 
</body> 
</html> 

file2.ftl

<div id="theContents" style="display:none"> 
    <input id="textboxId" type="text" /> 
    <select id="dropdownId"> 
     <option value="Select">Select</option> 
     <option value="first">one</option> 
     <option value="second">two</option> 
     <option value="third">three</option> 
    </select> 
    <button id="displayButtonId" id="save">Display</button> 
</div> 

<script type="text/javascript"> 
    $('#displayFancyboxButton').click(function(){ 
     $.fancybox.open({ 
      content: $('#theContents').html() 
     }); 
     return false; 
    }); 
    $("body").on("click","button[id=displayButtonId]",function(){ 
     var textboxVal = $('.fancybox-inner input[id="textboxId"]').val(); 
     var dropdownVal = $('.fancybox-inner input[id="dropdownId"]').val(); 
     alert('textboxVal=' + textboxVal + ", dropdownVal=" + dropdownVal); 
    }); 
</script> 

回答

1

我改變了選擇這樣:

var dropdownVal = $('#dropdownId').val(); 

你服用會需要的路線落得像這個:

var dropdownVal = $('.fancybox-inner select[id="dropdownId"]').val(); 

選擇器需要爲選擇 [id =「dropdownId」]而不是輸入[id =「dropdownId」],因爲您使用的是選擇標籤而不是輸入標籤。

但是,這種方法有點複雜。由於dropDownId是頁面上的唯一ID,因此您的選擇器只需引用它,而不是fancybox-inner或select/input。

希望有所幫助。

+0

完美。謝謝Woodifer。我同意這段代碼有點複雜,但是這是因爲它被剝離出來從更大的上下文中演示問題。更大的上下文是什麼導致我使用「fancybox-inner」,而不是我工作的$('#dropdownId')。我實際上試過「選擇」而不是「選擇」。哎呀。很近。再次感謝。 – r0144 2013-03-13 20:21:48

+0

謝謝Woodifer,這對我幫助很大。 – Gurusinghe 2016-12-23 08:37:35