2014-10-18 85 views
0

我有两个功能,我想在组合框中的我的更改事件,如下:问题与警告框的JavaScript

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(); 
    } 
} 
+0

您的问题是什么? – charlietfl 2014-10-18 11:50:01

+0

请发布HTML代码以及 – Amy 2014-10-18 11:52:21

+0

现在我已经格式化了您的代码,很清楚您的代码中有几处语法错误。很难说没有HTML,但JavaScript可能正在运行,然后出错,跳出onchange事件并提交表单。 – Rhumborl 2014-10-18 11:56:21

回答

0

好吧,不知道为什么你的表单没有看到表单HTML重新加载。我“米猜它可能会被提交,但不知道

除此之外,你必须在你的JavaScript您发布3个错误:

  1. 此行if (sizerear1 == 10049 & bordercolour1 == 144) 应改为此if (sizerear1 == 10049 && bordercolour1 == 144)

  2. 此行function borderchk(); 应改为此borderchk();

  3. 这不是真的n错误,但我会将所有数字放在双引号中,因为您将它们与STRINGS而不是NUMBERS进行比较。您从表格元素获得的值是STRINGS而非NUMBERS,尽管==仍然似乎正在工作,将STRINGS与STRINGS进行比较可能会更安全

+0

嗨,我试过上面的但删除函数停止脚本工作。我已经添加了两个&&。任何想法为什么警报框在第二个功能上消失? – sam 2014-10-18 13:12:04

+0

也许更新上面的代码,所以我们可以看到,因为用保留字“function”调用函数会引发错误。函数只能在定义一个函数时使用,而不能调用它。 – 2014-10-18 13:29:29