2

我一直在研究,现在需要一些输入。有人会向我展示使此代码在警报中显示下拉值的调整吗?它当前显示为“未定义”,而文本框值正确显示。谢谢。

文件 1.ftl

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

文件 2.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>
4

1 回答 1

1

我将选择器更改为:

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

您所走的路线最终需要像这样:

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

选择器需要选择[id="dropdownId"] 而不是 input[id="dropdownId"] 因为您使用的是选择标签而不是输入标签。

但是,这种方法有点复杂。因为 dropDownId 是页面上的唯一 id,所以您的选择器只需要引用它,而不需要 fancybox-inner 或 select/input。

希望有帮助。

于 2013-03-13T20:00:01.527 回答