php - 清除文本框字段后再次加载选择框

标签 php javascript

我有一个选择框和一个文本框,用于搜索选择框中的列表。使用 PHP 从数据库填充选择框。我在这里想要实现的是尽快清除文本字段;选择框应该刷新。我必须重新加载整个页面才能做到这一点。这是我用来通过选择框进行搜索的小脚本。

function filterSelectBox(filterButton) {
    var searchValue = document.getElementById('selectFilter').value.toLowerCase();
    var selectField = document.getElementById("domainID");
    var optionsLength = selectField.options.length;

    for(var i = 0; i < optionsLength; i++) {
        if(selectField.options[i].innerHTML.toLowerCase().indexOf(searchValue) >= 0) {
            selectField.options[i].style.display = 'block';
        } else {
            selectField.options[i].style.display = 'none';
        }
    }
}

这是与代码关联的 HTML 元素。

<div class="search_domains" id="search_domains">
    <input type="text"  id="selectFilter" name="selectFilter" />
    <input type="button" id="filterButton" value="Filter" onClick="filterSelectBox(this)"/>
</div>

这就是我填充选择框的方式,

<select name="domainID" id="domainID" size="15" style="width:175">
        <option>Select a Domain</option>
        <? foreach ($domains as $row) {
        ?>
        <option value="<?=$row -> id ?>"><?=$row -> domain ?></option>
        <? } ?>
    </select>

最佳答案

输入此代码:

document.getElementById('selectFilter').onkeyup = function() {
    if(this.value.length == 0) {
        var selectField = document.getElementById("domainID");
        var optionsLength = selectField.options.length;

        for(var i = 0; i < optionsLength; i++) {
            selectField.options[i].style.display = 'block';
        }
    }
};

就在 </body> 之前页面中的标签,当您清除文本框值时,它将显示所有选项。

关于php - 清除文本框字段后再次加载选择框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352730/

相关文章:

javascript - 如何使用谷歌共享按钮包含小图像

javascript - ScrollSpy "Activate"事件未触发

javascript - .removeAttr ('style' ) 在 ipad 上似乎无法正常工作

javascript - 如何在 DOM CSS 中使用变量

javascript - 如何通过jquery创建选择框

php - 如何在不干扰搜索优化的情况下定位 html 密集小部件

php - 如何国际化/本地化您的 FCM 推送通知,尤其是主题?

php - PHP缓存的最佳方式

php - 在 content-product.php 上更改 woocommerce 中的产品链接

php - strtotime 日期奇怪的结果