2014-10-18 81 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