如何在不提交表单的情况下按Enter键单击按钮

时间:2017-08-05 05:45:09

标签: javascript jquery html css forms

我目前有一个登录按钮,onclick,显示加载图标2秒,然后显示隐藏的div,隐藏的div也是表单的一部分,并包含实际提交表单的最终提交按钮。登录按钮只显示隐藏的div。我希望能够在按下按钮的表格的密码部分按Enter,这将触发此功能,如下所示。

function showDiv() {
document.getElementById('SteamLogin').style.display = "none";
document.getElementById('loadingGif').style.display = "block";
setTimeout(function() {
document.getElementById('loadingGif').style.display = "none";
document.getElementById('showme').style.display = "block";
},2000);
}

为我的表单输入的用户名和密码允许我按Enter键,但是它提交表单,我不想要。我想让回车键只需按下登录按钮,它会显示隐藏的div。就是这样。

<input class="btn_green_white_innerfade btn_medium" type="button" 
name="submit" id="userLogin" value="Sign in" width="104" height="25" 
border="0" tabindex="5" onclick="showDiv();">

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

典型的方法是在表单上收听import os import re print("Running Cleaner\n") directory = 'C:/Users/Matthew/Desktop/New folder (2)' directorylength=len(directory)+1 folders = [] movies = [] for root, dirs, files in os.walk(directory, topdown=False): for name in dirs: #print(os.path.join(root, name)[strlength:]) folders.append(os.path.join(root, name)[directorylength:]) for folder in folders: for file in os.listdir(directory + "/" + folder): if file.endswith(".mkv"): #print(os.path.join(folder, file)) movies.append(os.path.join(folder, file)[len(folder)+1:]) for folder in folders: for movie in movies: if os.path.exists(directory + "/" + folder + "/" + movie): file=folder + "/" + movie print("Found: " + file) newFile = re.sub('_t\d{2,}.mkv',".mkv",file) newFile = re.sub('_',' ',newFile) newFile = newFile[len(folder)+1:] print("Renaming to: " + newFile) os.rename(directory + "/" + file, directory + "/" + newFile) print("Removing empty folder: " + folder) os.rmdir(directory + "/" +folder) print("\nFinished Cleaning up!")

$helpCategoryList = HelpCategory::where('is_active', 1)
                               ->with(['helps' => function($query) {
            $query->with(['users'])
                  ->withcount(['helpComments','helpResponse','helpVotes'])
                  ->limit(5);}])
           ->orderBy('created_at', 'asc')
           ->get()
           ->toArray();

答案 1 :(得分:0)

你的意思是在输入标签上按下输入,然后只显示隐藏的div?

$('form input').keypress(function (e) {
  var key = e.which; //e.which is the code of press
  if (key == 13) { // 13 means enter
    alert("enter!");
    //do someting....
    e.preventDefault(); //prevent the default handler
    e.stopPropagation() //stop propagation of the event
  } 
}); 

如果你没有听到输入按下,也许它是浏览器的默认处理程序
尝试使用onkeydown="if(event.keyCode==13)return false;"
将此attr添加到您的表单中,如下所示:
<form onkeydown="if(event.keyCode==13)return false;">xxxxxxx</form>

我为你做了一个例子,return false停止了默认处理程序:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
  <form onkeydown="showDiv();return false">
    <input type="text"  name="submit" id="userLogin" value="Sign in" width="104" height="25" >
    <input type="password"  name="submit" id="userLogin" value="Sign in" width="104" height="25" >
    <input type="button"  name="submit" id="userLogin" value="Sign in" width="104" height="25" onclick="showDiv();">
    <input type="submit"  name="submit" id="submit" value="Sign in" width="104" height="25"  onclick="submit();">
  </form>
 </body>
 <script>
    function showDiv() {
        console.log('show');
    }

    function submit() {
        console.log('submit');
    }
 </script>
</html>