javascript - 更改 html 输入字段中的 Placeholder 属性

标签 javascript jquery html html-datalist

我有一个表单,其中有一个使用数据列表的输入字段,我想要做的是,当从该字段中选择某些内容时,用所选内容更新另一个输入字段,这是我到目前为止所拥有的

                <div class='form-row'>
                    <div class='col-xs-12 form-group required'>
                        <h2><label class='control-label'>Product code</label></h2>
                        <input id="ItemSelect" type=text list=jobs style='font-size:21px;height: 40px;'
                               class='form-control'
                               name="Code">
                        <datalist id=jobs>
                            <?php
                            foreach ($this->Products as $a) {
                                echo '<option value=' . $a["Code"] . '>' . $a["Code"] . " - " . $a["Name"] . ' </option>';
                            }
                            ?>
                        </datalist>
                    </div>

                    <div class='col-xs-12 form-group required'>
                        <input id="Placeholder" readonly class='form-control'
                               placeholder="Prodcut Descirption">
                    </div>

                    <script>
                        $("#ItemSelect")
                            .change(function () {
                                var str = "";
                                $("datalist option:selected").each(function () {
                                    str += $(this).text() + " ";
                                });
                                $("#Placeholder").attr("placeholder", str).val("").focus().blur();
                            })
                            .change();

                    </script>

这种方法有效,它选择正确的输入字段来检测更改,但它不会将值放入。如果我更改

$("datalist option:selected") 

$("select option:selected")

它确实将所有其他选择字段的值放入其中,有什么想法吗?

最佳答案

数据列表中不存在option:selected这样的东西。

您可以通过查看输入中当前的内容来获取所选值:

$("#ItemSelect").change(function() {
    var str = $(this).val() + " ";
    $("#Placeholder").attr("placeholder", str).val("").focus().blur();
});

如果您只想在输入值实际存在于数据列表中时执行此操作:

$("#ItemSelect").change(function() {
    var str = $(this).val() + " ";.

    $('datalist option').each(function() {
        if($(this).text() === str) {
            $("#Placeholder").attr("placeholder", str).val("").focus().blur();
        }
    }); 
});

关于javascript - 更改 html 输入字段中的 Placeholder 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29103219/

相关文章:

javascript - 如何配置 grunt-contrib-uglify 以在保留目录结构的同时缩小文件

javascript - 带有大边框的 jquery ui 可调整大小的 div

javascript - 循环遍历数组到div?

javascript - 如何优化jQuery标签:contains() selector?

javascript - React 入门套件与 Next.js

javascript - 使用 Meteor 和 Handlebars 创建 "components"

javascript - Drupal 仪表板中的问题

javascript - 在 jQuery 中使用 ajax - url 不被接受

python - 如何解码html十六进制元素?

javascript - Div 内的 Div 的 CSS 溢出