2013-03-13 94 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