2012-12-24 52 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/

相关问题