JavaScript在点击"提交"之前是先行操作按钮/链接

时间:2016-06-16 19:15:48

标签: javascript html

我是JavaScript的新手,我在操作上运行时遇到了一些困难。在点击我的提交按钮之前,程序正在运行我的代码。到目前为止,有许多类似的问题已被涵盖,但我不相信他们中的任何一个已经涵盖了这个问题。请不要在其他地方回答这个问题(相信我,我会阅读这些文件)。在此先感谢您的帮助。

<html>
<body style="background-color: lightgrey">
<link rel='stylesheet' type='text/css' href='newcss.css'/>
<ol>
    <p style="color:black">Scan Location</p>
</ol>

<table class="scanLocation" align="center">
       <tr>
           <td>
               <ol>
                    <input type="text" name="fname" maxlength= "18" size= "33" input style="font-size:20px"/>

               </ol>
           </td>
       </tr>
       <tr>
           <td>
               <ol>
                   <form>
                        <input type="button" onclick="script" value="Submit"/>
                            <p id="seconds"></p>
                                <script>
                                    firstFunction();
                                    function firstFunction(){
                                    var date = new Date();
                                    var seconds = date.getUTCSeconds();
                                        myFunction();
                                        function myFunction(){
                                        document.getElementById("seconds").innerHTML = "seconds";
                                        }
                                        checkEven();
                                        function checkEven(seconds){
                                        return Math.floor(seconds%2) == Math.floor(0);
                                        }
                                        if(checkEven(seconds)){
                                            location.href='index2.jsp';
                                        }
                                        else{
                                            location.href='index3.jsp';
                                        }
                                        }
                                </script>
                   </form>
               </ol>
           </td>
       </tr>
</table>
</body>
<script type='text/javascript' src='script.js'></script>
</html>

2 个答案:

答案 0 :(得分:0)

脚本的执行与您编写的完全相同。问题是你没有正确指定onclick事件,正确的版本是:

<input type="button" onclick="firstFunction()" value="Submit"/>

你应该从脚本本身删除函数调用,我的意思是在打开脚本标记后的这一行:

firstFunction();

一般来说,它不是绑定事件的最佳选择,因为HTML应该只是一个演示文稿也在处理行为,在复杂的项目中管理这些页面会很麻烦,但也许对于研究它很好。

答案 1 :(得分:0)

您的代码应该更像这样:

<html>
<head>
    <link rel='stylesheet' type='text/css' href='newcss.css'/>
</head>
<body style="background-color: lightgrey">
<ol>
    <p style="color:black">Scan Location</p>
</ol>
<form onsubmit="firstFunction()">
<table class="scanLocation" align="center">
       <tr>
           <td>
               <ol>
                    <input type="text" name="fname" maxlength= "18" size= "33" input style="font-size:20px"/>

               </ol>
           </td>
       </tr>
       <tr>
           <td>
               <ol>
                    <input type="submit" value="Submit"/>
                    <p id="seconds"></p>                                
               </ol>
           </td>
       </tr>
</table>
</form>

<script type='text/javascript' src='script.js'></script>
<script>
function firstFunction(){
  /* your logic here */
}                                  
</script>
</body>

</html>

我做了什么:

  • 我在表格周围放置了表单标签,因为我怀疑您希望fname字段也是表单的一部分,而不仅仅是按钮。
  • 在加载外部脚本之后,我将脚本块移动到body(不在体外)的底部(根据你的逻辑判断,那里有一些需要加载的函数) 'firstFunction'工作
  • 在表单中添加了onsubmit。这比绑定到按钮更好,因为有更多方法提交表单然后只需单击提交按钮(返回键即。)。我出于同样的原因将按钮类型更改为submit
  • 我在函数声明的上方删除了函数调用firstFunction()。您还不想调用该函数,因为它只需要触发o提交。此外,您最好在之前声明函数,以防止出现竞争条件。
  • 我将te链接固定到您的样式表,方法是将其移动到页面的head部分。根据规格,它是唯一允许链接样式表的地方。您的方式可能适用于大多数浏览器,但最好以正确的方式执行。