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

jQuery not changing text on selection of option

本文关键字:改变 文本 选项 选择 jQuery      更新时间:2023-09-26

在我开始之前,我会让你知道我在我的页面中使用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还是有点陌生,所以它可以是一些简单的东西,但我可以使用一个点在正确的方向

live()很早以前就被弃用并从jQuery中删除了。你应该更新你的jQuery版本,并使用on()的委托:

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

问题最有可能出现在live函数的使用中。这在jquery中不再支持(已弃用)。您可以像这样更新代码以使用委托事件:

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

你应该使用。on(),而不是。live()…