警报框javascript的问题

警报框javascript的问题,javascript,alert,Javascript,Alert,在组合框的“更改”事件中,我需要两个函数,如下所示: onchange="border_shaped();borderchk();" 我有两个功能,检查值并在匹配时显示消息框警报 代码工作正常,除了onchange事件中的第二个函数外,警报框在显示后消失 如上所述,borderchk()功能显示警报消息框半秒钟,然后表单重新加载。参见以下功能: function borderchk() { var bordercolour = document.designer.border_id.v

在组合框的“更改”事件中,我需要两个函数,如下所示:

onchange="border_shaped();borderchk();"
我有两个功能,检查值并在匹配时显示消息框警报

代码工作正常,除了onchange事件中的第二个函数外,警报框在显示后消失

如上所述,
borderchk()功能显示警报消息框半秒钟,然后表单重新加载。参见以下功能:

function borderchk()
{
    var bordercolour = document.designer.border_id.value;
    if (bordercolour == 145)
    {
        alert("Border Colour 145");
    }
    else if (bordercolour == 10100)
    {
        alert("Bordercolour 10100");
    }
}

function border_shaped()
{
    var sizerear1 = document.designer.size_back.value;
    var bordercolour1 = document.designer.border_id.value;
    if (sizerear1 == 10049 & bordercolour1 == 144)
    {
        alert("Border shaped");

        function borderchk();
    }
}

好的,我不知道为什么在没有看到表单HTML的情况下重新加载表单。我猜它可能正在提交,但不确定

除此之外,您发布的javascript中还有3个错误:

  • 此行
    if(sizerear1==10049&bordercolor1==144)
    如果(sizerear1==10049&&bordercolor1==144)
  • 此行
    函数borderchk();
    应更改为此
    borderchk();

  • 这并不是一个真正的错误,但我会把所有的数字都放在双引号中,因为您将它们与字符串而不是数字进行比较。从表单元素中获得的值是字符串而不是数字,尽管==似乎仍然有效,但比较字符串与字符串可能更安全


  • 你的问题是什么?请同时发布HTML代码现在我已经格式化了你的代码,很明显你的代码中有几个语法错误。没有HTML很难说,但是javascript可能正在运行,然后出错,跳出onchange事件并提交表单。你已经调用了borderchk();函数位于border_-shaped()函数内部,因此请仅调用html onchange=“return border_-shaped()中的一个函数;“抱歉,请忽略函数borderchk();在另一个函数中,这只是为了测试这是否可以解决警报框消失的问题。我尝试了上述方法,但删除该函数会使脚本停止工作。我添加了两个&。知道第二个函数中警报框消失的原因吗?也许可以更新上面的代码,以便我们可以看到,因为调用函数保留字“function”抛出错误。function只能在定义函数时使用,不能调用它。