Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Datalist-如何在单击选项时启动功能?_Javascript_Html_Css_Vue.js_Vuejs2 - Fatal编程技术网

Javascript Datalist-如何在单击选项时启动功能?

Javascript Datalist-如何在单击选项时启动功能?,javascript,html,css,vue.js,vuejs2,Javascript,Html,Css,Vue.js,Vuejs2,我在VueJS中搜索数据列表时遇到了问题,为什么当我用鼠标或enter键单击数据列表上的某个选项时,我的函数getData()被调用来单击和@keypress。enter没有启动 这是我的密码: 模板: <input list="data" v-model.trim="searchBy" @keyup.enter="getAllDatas"

我在VueJS中搜索
数据列表时遇到了问题,为什么当我用鼠标或enter键单击
数据列表上的某个选项时,我的函数
getData()
被调用来单击
@keypress。enter
没有启动

这是我的密码:

模板:

          <input
            list="data"
            v-model.trim="searchBy"
            @keyup.enter="getAllDatas"
            type="text"
            placeholder="Find more data..."
          />
          <br />
          <datalist id="data">
              <option v-for="r in repos.items" 
                      :key="r.id" 
                      :value="r.name"
                      @click="getData(r.id)"
                      @keypress.enter="getData(r.id)"  />
          </datalist>
我完全不知道这里出了什么问题,有人能告诉我吗?

控件没有自己的事件,您必须使用
。单击和键盘事件都将触发输入的
向下键
侦听器



这将把事件传递给处理程序,因此除非您能够解决这个问题,否则您可能希望使用
或自定义控件在您的方法部分,我不能这样做,因为我需要为我的
getData
函数提供一个属性,但在
input
中,我没有数据要做。在这种情况下,您不能使用数据列表。您可以选择是一个
或一个模仿数据列表行为的自定义控件。您能否显示示例witch
select
?我在前端的能力很弱,但我需要这个控件:(plzWell,它基本上就是你在这里拥有的,但是没有输入。所以你不能用它来获得打字能力。如果你需要,那么你必须使用自定义控件。这就是你想要的吗?谢谢@Dan,这很有帮助!
 methods: {
    getAllDatas() {
      fetch(`someURL`)
        .then(res => res.json())
        .then(
          res => {
            this.data = res
          }
        )
    },
    ...mapActions(["fetchData"]),
    async getData() {
       await this.fetchData();
  },