我计划在本地服务器上为本地html文件创建一个搜索引擎,按名称搜索html文件,并从列表中 Select 一个文件夹.

主要的 idea 是找到.html文件基于用户输入,他/她还必须从列表中 Select 一个文件夹这里是一个代码,有下拉列表,搜索框和提交按钮.它现在可以在主文件夹上正常工作,但我需要它只在列出的文件夹中搜索

function redirect(){
    var url=document.getElementById('test').value
    window.location = url+".html"
}

function handleKeyUp(event) {
    if (event.keyCode === 13) { //13 is enter keycode
      redirect();
    }
}
<select id="selectid">
    <option j-link="" value="" selected="">please choose folder</option>
    <option j-link="./1/" value="">folder1</option>
    <option j-link="./2/" value="">folder2</option>
    <option j-link="./3/" value="">folder3</option>
</select>

<input id="test" type="text" autofocus onkeyup="handleKeyUp(event)">
<button type="button" onclick="redirect()">Submit</button>

推荐答案

  • 我建议你使用一个表格,并在上面收听提交活动,而不是使用event.keyCode === 13.
  • 您必须为select字段的option而不是value=""传递正确的值,否则您 Select 的每个选项都将返回空字符串.

试试这个

document.addEventListener('DOMContentLoaded', function(){
    let form   = document.getElementById('search-form');
    let folder = form.querySelector('[name="folder"]');
    let file   = form.querySelector('[name="file"]');

    form.addEventListener('submit', event => {
        event.preventDefault();

        let folderValue = folder.value.trim();
        let fileValue   = file.value.trim();

        if( folderValue && fileValue ){
             window.location = folderValue+'/'+fileValue+".html" 
        }else{
            file.focus();
        }
    })
})
<form id="search-form">
    <select name="folder">
        <option j-link="" value="" selected>please choose folder</option>
        <option j-link="./1/" value="folder1">folder1</option>
        <option j-link="./2/" value="folder2">folder2</option>
        <option j-link="./3/" value="folder3">folder3</option>
    </select>

    <input type="text" name="file" autofocus>
    <button type="submit">Submit</button>
</form>

Javascript相关问答推荐

Vue:ref不会创建react 性属性

使用下表中所示的值初始化一个二维数组

Angular material 拖放堆叠的牌副,悬停时自动展开&

未捕获错误:[]:getActivePinia()被调用,但没有活动Pinia.🍍""在调用app.use(pinia)之前,您是否try 使用store ?""

如何将Cookie从服务器发送到用户浏览器

如果Arrow函数返回函数,而不是为useEffect返回NULL,则会出现错误

连接到游戏的玩家不会在浏览器在线游戏中呈现

搜索功能不是在分页的每一页上进行搜索

将基元传递给THEN处理程序

JWT Cookie安全性

JavaScript将字符串数字转换为整数

本地损坏的Java脚本

为什么NULL不能在构造函数的.Prototype中工作

如何在移动设备中使用JAVASSCRIPT移除点击时的焦点/悬停状态

每隔一行文本段落进行镜像(Boustrophedon)

相对于具有选定类的不同SVG组放置自定义工具提示

ReactJS Sweep Line:优化SciChartJS性能,重用wasmContext进行多图表渲染

Js问题:有没有办法将数据从标记表转换成图表?

鼠标进入,每秒将图像大小减小5%

ReactJS扫描线演示:多个曲面未同时更新的问题