2012-12-24 50 views
0

我有一個小按鈕,當它按下一個名稱時,然後將輸入添加到可以由PHP處理的URL。我的代碼如下。爲什麼javascript有時會輸出未定義的變量

function staff_prompt(url) 
    { 
    var url = url; 
    var staffname=prompt("Please enter your Name below:","Staff Member Name"); 
    if (staffname == null) { 
    } 
    else if (staffname == "Staff Member Name") { 
    alert('You must enter a value to continue'); 
    staff_prompt(); 
    } 
    else if (staffname == "") { 
    alert('You must enter a value to continue'); 
    staff_prompt(); 
    } 
    else { 
    var windowgo = url + "&staffmember=" + staffname; 
    window.location = windowgo; 
} 
} 

我的按鈕的代碼如下

onclick="staff_prompt('index.php?app=orders&page=action&action=go_orderedviewtype=<?php echo $viewtype ?>&orderid=<?php echo $orderid ?>') 

有時它工作得很好,但是其他時間似乎進入「HTTP://undefined....ect」 我不能複製的情況,有時會發生,有時不是

我在想,也許代碼不是很好...爲什麼JavaScript不檢測有時變量'網址'。

+0

使用qunit來測試你的功能http://qunitjs.com/ –

回答

3

是的,你的代碼有問題。

要調用來自您的其他的staff_prompt()功能,如果條件&你沒有通過它的url作爲參數,所以它肯定會把它作爲undefined

+0

謝謝 - 我想這就是爲什麼它只是偶爾發生的事情: ) – user1641165

2

此處URL未定義。你正在用一個未定義的參數調用函數:

staff_prompt(); 

所以只要你進入else if -s你會得到未定義的url。

更改您的代碼爲staff_prompt(url);,你會沒事的。

+0

感謝.....現在的工作 – user1641165

0

當您在發生錯誤後調用staff_prompt時,您不會傳遞它的url。

function staff_prompt(url) { 
    var url = url; 
    var staffname=prompt("Please enter your Name below:","Staff Member Name"); 
    if (staffname == null) { 
    } else if (staffname == "Staff Member Name") { 
     alert('You must enter a value to continue'); 
     staff_prompt(url); 
    } else if (staffname == "") { 
     alert('You must enter a value to continue'); 
     staff_prompt(url); 
    } else { 
     var windowgo = url + "&staffmember=" + staffname; 
     window.location = windowgo; 
    } 
} 

例子:http://jsfiddle.net/burlak/CsrTc/3/

相關問題