2016-11-17 69 views
-2

所以我有一个按钮,当它被点击时调用了AllEntered() javascript方法,并且您可以在最终的if/else中看到它,它应该得到submission.htmladmin.html,而不是去那些它只是重新加载我所在的当前页面。这是所有的方式,其目的是检查是否所有的复选框输入检查。此外,我没有提出的戒备号码也不会生成。JavaScript方法不能在HTML中工作

button onclick="AllEntered()" class="myButton">Submit</button> 
    <script> 
     function AllEntered() 
     { 
      var ids = {"freshSoph", "participate", "respect", "leave", "illegal", "alcohol", "typeName"}; 
      var loopNumber = 0; 
      for(var i = 0; i < ids.length - 1; i++) 
       { 
        if(document.getElementById(ids[i]).checked) 
        { 
         loopNumber++; 
         alert(loopNumber.value); 
         } 
        } 
        if(loopNumber = ids.length) 
        { 
         window.open("submission.html"); 
        } 
        else 
        { 
         window.open("admin.html"); 
        } 
       } 
    </script> 
+0

看来你的JavaScript中存在一个错误,就是你声明它的方式。尝试改为:'var ids = [“freshSoph”,“参与”,“尊重”,“离开”,“非法”,“酒精”,“typeName”];'如果您使用Chrome浏览器显示开发人员工具以查看任何错误并单步执行脚本,也可以按F12。 – vbguyny

+0

添加后的含义大括号{在那里alert(loopNumber.value); – SMW

+0

@SachithMW只是为了测试它是否会进入if语句 –

回答

1

打开浏览器开发者工具。阅读错误消息。

您有一个错字。数组是用[]而不是{}创建的。

(当然,它重新加载页面,也就是点击表单内的提交按钮)。

+0

感谢它只是在错字,很久以前采取java和html所以即时生锈有点,并且按钮不是类型提交它只是一个按钮与内容被提交(抱歉应该更清楚) –

+0

@KyleHornacek - 它没有类型属性。这是一个提交按钮。 – Quentin

+0

感谢它现在所有的作品 –

-2

在您的形式,这个按钮下面,添加一个按钮式的隐藏输入提交如下所示:

<button hidden type="Submit"> 

你的问题可以通过这样的事实造成的,你是缺少提交类型的按钮。

当表单没有提交类型的按钮时(点击时会将表单提交到其目标,或者如果没有指定目标,则返回自己)这是我们称之为回发的方式,就像在发回自己的回复中一样)将使用任何按钮点击作为提交事件提升者。

通过添加一个实际的提交按钮,您可以删除此默认行为,同时还可以确保用户无法点击该按钮,因为控件在其隐藏时未处于活动状态。

+0

谢谢,我现在工作 –

+1

Err。不。按钮的默认类型是'submit'。它与任何其他按钮的存在(或缺少)没有任何关系。 – Quentin

+0

是一个按钮是由defaut提交的。所以当你想在表单中按下一个按钮而没有提交,而是想要运行你自己的功能时,那么你必须至少提供一个按钮,将explicicty设置为type =“Submit”,否则你会触发一个回发 – MKougiouris