0

我有一个小按钮,按下时会询问名称,然后将输入添加到 URL,然后 PHP 可以处理该 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();
  }
  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'。

4

3 回答 3

3

是的,你的代码有问题。

您正在staff_prompt()从两个 else if 条件中调用函数,并且您没有将url其作为参数传递,因此它肯定会将其作为undefined.

于 2012-12-24T08:33:38.313 回答
2

这里的 URL 是未定义的。您正在使用未定义的参数调用该函数:

staff_prompt();

因此,只要您进入 else if-s,您就会得到未定义的 url。

将您的代码更改为staff_prompt(url);,您会没事的。

于 2012-12-24T08:33:27.047 回答
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/

于 2012-12-24T08:52:11.383 回答