Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 如何在输入文本区域中创建Enter事件以使用Vue.js按下按钮&;电子_Javascript_Vue.js_Electron - Fatal编程技术网

Javascript 如何在输入文本区域中创建Enter事件以使用Vue.js按下按钮&;电子

Javascript 如何在输入文本区域中创建Enter事件以使用Vue.js按下按钮&;电子,javascript,vue.js,electron,Javascript,Vue.js,Electron,我开发了一个登录应用程序,效果很好,但我想让它更方便。我想让它当我在密码输入区的重点,并点击键盘上的输入按钮,登录按钮应点击 但现在我必须用鼠标点击按钮或点击tab键并进入 我在网上搜索它,看起来很简单,但我不知道如何应用我的条件 问题是我将登录按钮放在另一个组件vue文件中 [main.vue] <div class="form-item"> <label>ID</label> <input type="tex

我开发了一个登录应用程序,效果很好,但我想让它更方便。我想让它当我在密码输入区的重点,并点击键盘上的输入按钮,登录按钮应点击

但现在我必须用鼠标点击按钮或点击tab键并进入

我在网上搜索它,看起来很简单,但我不知道如何应用我的条件

问题是我将登录按钮放在另一个组件vue文件中

[main.vue]

 <div class="form-item">
 <label>ID</label>
   <input type="text" class="input-form" id="id" v-model="conn.user">
 </div>
  <div class="form-item">
  <label>Password</label>
 <input type="password" class="input-form" id="password" v-model="conn.password" @keyup.enter="trigger">
   </div>
  <div class="form-item">
 <ConnectionItem ref="sendReply" :key="conn.uuid" :conn="conn" @connect="connect" @disconnect="disconnect" />
</div>
  <div class="item">
    <div class="form-item">
<button class="login" v-show="showConnectButton" :class="{ 'success': isConnected, 'connecting- 
 disconnecting': isConnectingOrDisconnecting }" :disabled="isConnectingOrDisconnecting"  
 @click="$emit(isConnected ? 'disconnect' : 'connect', conn)">{{isConnected ? 'disconnect' : 'login'}} 
 </button>
      </div>
  </div>
vue.esm.js?a026:628 [Vue warn]: Error in v-on handler: "TypeError: this.$refs.sendReply.click is not a function"

found in
---> <MainWindow> at src/renderer/components/MainWindow/index.vue
       <GeomecCloudManager> at src/renderer/App.vue
         <Root>

我认为应该在某个地方连接main.vue和connectionItem.vue,但我不知道这种情况。欢迎任何想法或关键字。谢谢;)

有多种方法可以做到这一点:

方法1: 将按键侦听器绑定到输入字段。仅当字段聚焦时,事件才会触发:


方法2: 在窗体组件打开时添加按键侦听器,在关闭时删除它

在您注销侦听器之前,将触发该事件:

数据(){
返回{
错误:错误
}
},
观察:{
formIsOpened(值){
如果(值){
window.addEventListener('keypress',this.formEnterKeypressHandler)
}
如果(!值){
window.removeEventListener('keypress',this.formEnterKeypressHandler)
}
}
},
方法:{
formEnterKeypressHandler(事件){
如果(event.code=='Enter'){
this.trigger()
}
},
触发器(){
console.log('trigger')
}
}