【发布时间】:2014-02-25 20:05:27
【问题描述】:
我在过滤基于 html 输入的 HTML 选择选项时遇到问题。例如: 如果我在输入中写 T 恤,我只想在我的选择选项中看到 T 恤 我的代码看起来像这样...
<input type="text" name="search" id="inputdata" onkeyup="filter()">
<select name="select[]" id="filtersimilar" multiple>
<?php foreach ($all as $row) { ?>
<option value="<?php echo $row->id_product; ?>" itemid="<?php echo $row->name; ?>"><?php echo $row->name; ?></option>
<?php } ?>
</select>
而JS/Jquery代码是:
<script>
function filter(){
inp = $('#inputdata').val();
$("#filtersimilar").change(function() {
var options = $(this).data('options').filter('[itemid=' + inp + ']');
$('#select2').html(options);
});
}
</script>
【问题讨论】:
-
请准确说明您的代码是否失败或您得到什么输出
-
我没有任何效果...当我输入内容时没有任何变化
-
$(this).data('options')=> 我在任何地方都看不到data-options属性。 -
如果您希望在 keyup 上进行过滤,请删除
$("#filtersimilar").change()绑定。这就是说当filtersimilar选择元素改变时做var options = …。但我的理解是,您实际上希望选择元素在文本元素更改时进行过滤。另外,您有$('#select2').html(options);,但我在您的代码中没有看到任何select2元素。
标签: javascript php jquery html