我有一个小按钮,按下时会要求输入名称,然后将输入添加到URL,然后由PHP处理。我的代码如下。
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有时候不能检测变量'url'。
答案 0 :(得分:3)
是的,您的代码存在问题。
如果情况与条件相同,您正在呼叫其他人的staff_prompt()
功能。您尚未将url
作为参数传递给它,因此它肯定会将其视为undefined
。
答案 1 :(得分:2)
此处未定义网址。您正在使用未定义的参数调用该函数:
staff_prompt();
所以,只要你进入其他if-s,你就会获得未定义的URL。
将您的代码更改为staff_prompt(url);
,您就可以了。
答案 2 :(得分:0)
如果在发生错误后调用staff_prompt,则不会传递它。
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;
}
}