如何用JavaScript替代回车执行输入框为type="submit"的提交

光标在input或者textarea输入框中的时候,想通过JavaScript调用submit() 执行type="submit"的提交,不再点按钮和按enter

现在没办法识别不同网站的input或者textarea文本框

尝试了下用下面的方法,都没有效果
document.activeElement.submit()
this.submit()

比如百度搜索输入框的可以按enter提交的按钮

<input type="submit" id="su" value="百度一下" class="bg s_btn">

有些论坛的按ctrl+enter提交的按钮

<button type="submit" onmouseover="checkpostrule('seccheck_fastpost', 'ac=reply');this.onmouseover=null" name="replysubmit" id="fastpostsubmit" class="pn pnc vm" value="replysubmit" tabindex="5"><strong>发表回复</strong></button>

或者是微博node-type="submit"的提交按钮

<a href="javascript:void(0);" class="W_btn_a btn_30px " diss-data="module=stissue" node-type="submit" title="发布微博按钮">发布</a>
阅读 2.4k
2 个回答

已解决

function getParentFormByChild(ele){  
 while(ele.parentNode.tagName.toLowerCase() !== 'body' && ele.parentNode.tagName.toLowerCase() !== 'form'){  
 ele = ele.parentNode  
 }  
 if(ele.parentNode.tagName.toLowerCase() === 'body' ) return null  
 return ele.parentNode  
}  
  
function 油猴子点击图标事件(){  
 let ele = "油猴子获取当前光标所在input的dom元素"  
 let fromEle = getParentFormByChild(ele)  
 if(fromEle) fromEle.submit()  
}

参考我这个:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <form action="#" id="form">
    <input type="text" id="input">
  </form>
</body>
</html>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
  $(document).ready(function(){
    $('#input').keydown(function() {
      // keyCode是否等于13(回车键的keyCode为13)
      if(event.keyCode == 13) {
        $('#input').submit()
      }
    })
  })
</script>

按照一下方式改就好了

 $(document).ready(function(){
    $('#form').keydown(function() {
      // keyCode是否等于13(回车键的keyCode为13)
      if(event.keyCode == 13) {
        $(this).submit()
      }
    })
  })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题