在输入(文本框)字段中按下回车键时验证并提交表单,但在按下回车键后不选择历史记录


validate and submit form when enter is pressed in input(textbox) field but does not select history when enter pressed

类似于我们在输入标签上使用onfocus和onclick的方式,当有人在表单中的字段中的文本框上按enter键时,我使用以下方法(如果方法错误,请告诉我什么是正确的方法)提交表单

例如,当某人在密码字段中写入密码并按下回车键(当光标位于密码字段上时)时,表单应该提交。

我甚至有一个提交按钮,但我希望在点击提交时按下文本输入时也能发生同样的事情

我现在正在使用这个

onkeypress='if (event.keyCode == 13) { validate(); }'

对于我的文本框字段

这里的问题是,当文本框的历史记录显示在文本框下方,并且我通过按enter键选择它时,它不会首先在文本框中取值。它直接验证文本框中的值

示例:我已经在我的电子邮件文本框中键入了ab,我得到abc@xyz.com在我的文本框下面,显示我之前已经键入了,而不是当我按下向下箭头并按下回车键时,它不需要abc@xyz.com在我的文本框中,但立即运行validate(),anhd给了我一个错误,即错误的电子邮件格式。

我认为它应该首先在文本框中取我的旧值,然后运行验证函数

我正在使用代码点火器

不确定是否理解您的问题,
也许你需要这样的代码:

function submitMe(event) {
    if (window.event.keyCode == 13)
    {
        document.myForm.submit();
    }
}

然后在您的HTML:中

 <input type="input" ... onKeyPress="submitMe(event)"  value=""> 

或者您可以使用autocomplete="off"而不是value=""

 <input type="input" ... onKeyPress="submitMe(event)"  autocomplete="off">

您尝试过方法吗:onsumbit:

<form method="post" onsubmit="validate()">...