jQuery在选择选项时不改变文本

时间:2015-10-21 15:06:42

标签: javascript php jquery

好的,在我开始之前,我会告诉您我在我的页面中使用https://github.com/marghoobsuleman/ms-Dropdown,但我已尝试使用和不使用该源的实现,所以我不认为这与它

这是我的选择菜单

<select id="payments2" name="payments2" style="width:100%; ">
    <option value="" data-description="Exchange To">Processor</option>
        <?php
            $processor = $db->query("SELECT * FROM `processors`");
            while($pro = $processor->fetch_assoc()) { ?>
            <option value="<?php echo $pro['id']; ?>" data-image="<?php echo $pro['icon']; ?>"><?php echo $pro['name']; ?></option>
        <?php } ?>
    </select>

    <form class="form-style-7">
        <ul>
            <li>
                <label for="test">Name</label>
                <input type="text" id="p1" name="test" maxlength="100">
                <span>Stuff Here</span>
            </li>

它填充正常,这不是问题,这是我正在使用的jQuery

$(document).ready(function() {
    $("#payments").msDropdown({visibleRows:4});
    $("#payments2").msDropdown({visibleRows:4});
    $("#payments2 option").filter(function() {
        return $(this).text() == $("#p1").text();
    }).attr('selected', true);

    $("#payments2").live("change", function() {
        $("#p1").val($(this).find("option:selected").text());
    });
});

我不确定为什么当我更改选择时它不会在输入框中显示任何内容。

我仍然是jQuery的新手,所以它可能很简单,但我可以在正确的方向上使用一个点。

3 个答案:

答案 0 :(得分:2)

很久以前,

live()已被弃用并从jQuery中删除。您应该更新您的jQuery版本并使用on()

的委托
$(document).on('change', "#payments2", function() {
    $("#p1").val($(this).find("option:selected").text());
});

答案 1 :(得分:0)

最常见的问题是使用直播功能。 jquery不再支持它(它已被弃用)。您可以更新代码以使用如下的委托事件:

$(document).on("change", "#payments2", function() {
    $("#p1").val($(this).find("option:selected").text());
});

答案 2 :(得分:0)

你应该使用.on(),而不是.live()......现在已经弃用了一段时间。