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