Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:检查表单时是否显示警报?_Javascript_Html_Alert - Fatal编程技术网

Javascript:检查表单时是否显示警报?

Javascript:检查表单时是否显示警报?,javascript,html,alert,Javascript,Html,Alert,我创建了一个简单的web应用程序,它有两个表单选择,当用户从每个表单中进行选择时,我希望显示一个警报,显示他们所做的选择 我在下面尝试过这一点,但当两种形式都被选中时,警报不会显示。我错过了什么?注:见评论: //BELOW IS NOT BEING DISPLAYED BUT SHOULD BE 当前代码: <!DOCTYPE html> <html> <body> <h1>Calculator</h1> <p>S

我创建了一个简单的web应用程序,它有两个表单选择,当用户从每个表单中进行选择时,我希望显示一个
警报
,显示他们所做的选择

我在下面尝试过这一点,但当两种形式都被选中时,警报不会显示。我错过了什么?注:见评论:

 //BELOW IS NOT BEING DISPLAYED BUT SHOULD BE
当前代码:

<!DOCTYPE html>
<html>
<body>

<h1>Calculator</h1>

<p>Select the importance of this:</p>

<form method="get">
  <input type="checkbox" name="Severity" value="negligible"> Negligible<br>
  <input type="checkbox" name="Severity" value="minor"> Minor<br>
</form>

<p>Select the Probability of this:</p>

<form method="get">
  <input type="checkbox" name="Probability" value="improbable"> Improbable<br>
  <input type="checkbox" name="Probability" value="remote"> Remote<br>
  <input type="checkbox" name="Probability" value="occasional"> Occasional<br>

<button onclick= "analyseThis()"> Analyse this </button> <br>



<script>

function analyseThis(){

    var severities = document.getElementsByName('Severity');
   var probs = document.getElementsByName('Probability');

  var severity = undefined;
  for(var i = 0; i < ages.length; i++)
  {
    if(severities[i].checked)
    {
      age = severities[i].value;

    }
  }

   var probability = undefined;
   for(var i = 0; i < probs.length; i++)
   {
      if(probs[i].checked)
      {
        probability = probs[i].value;

      }
    }

   //BELOW IS NOT BEING DISPLAYED BUT SHOULD BE
   alert("Severity is: " + age + "Probability is: " + probability);

}

</script>


</body>
</html>

计算器
选择此项的重要性:

可忽略不计
小调
选择以下概率:

不可能的
远程
偶尔的
对此进行分析
函数分析器this(){ var severities=document.getElementsByName(“严重性”); var probs=document.getElementsByName(“概率”); var严重性=未定义; 对于(变量i=0;i
我将使用JQuery并使用按钮的单击功能提交

以下是一个例子:

$(document).ready(function () {
    $("{form id/class button id/class OR button id/class}").click(function(e) {
        e.preventDefault();
        //perform validation

        //if everything is good...
        $("{form id/class}").submit();
    });
});

您的代码中有一个错误-您正在检查循环中的
ages.length
,该循环在第一个循环中可能未定义(代码中没有
ages
变量),您的代码执行应该在那里停止

在此处使用JSBin代码:
您的代码中有一个bug。

for(var i = 0; i < ages.length; i++)
{
    if(severities[i].checked)
    {
        age = severities[i].value;

    }
}
for(变量i=0;i
代码中尚未定义“ages”,也未定义“age”。这将引发一个错误,阻止代码运行。这就是为什么警报没有发出


声明ages数组。

发生了一些有趣的事情:

  • 您的函数AnalyseSethis()确实会被调用,但存在一个 评估时出错

  • 页面上的表单正在“提交”,因此页面将重新加载 你永远看不到错误

  • 要防止重新加载页面(以便查看错误),请执行以下操作:

  • event
    对象从
    onclick
    hander传递给您的AnalyzeSthis()函数:

    <button onclick= "analyseThis(event)"> Analyse this </button>
    
  • 完成此操作后,您将在控制台中看到基本错误输出:

    ReferenceError: ages is not defined (line 33, col 17)
    for(var i = 0; i < ages.length; i++)
    
    ReferenceError:未定义年龄(第33行,第17列)
    对于(变量i=0;i

    如果您确实希望提交表单,请记住在调试代码后删除
    e.preventDefault()
    调用。

    您可以使用JQuery验证表单并提交。谢谢,我已修复此错误(现在参考更正数组)但警报框仍不显示浏览器控制台中是否显示任何其他错误(您可以按F12键打开控制台)?
    ReferenceError: ages is not defined (line 33, col 17)
    for(var i = 0; i < ages.length; i++)