如何确定是否为Javascript函数提供了参数?

时间:2014-07-26 05:41:20

标签: javascript jquery function

我一直试图调用一个可以接受3个参数的javascript函数,即:pcode,color和size。 始终提供Pcode。但是,可能会或可能不会提供颜色和大小。 提供的参数可能是: a。)仅限pcode b。)pcode和颜色 c。)pcode和大小 d。)pcode颜色和大小。

Pcode是整数。颜色和大小是字符串。

我已检查onclick='offline(11,Pink,Small)'是否正确提供,但该功能未自行执行。

    function offline(pcode,color,size)
    {
    if ((typeof color !== undefined)&&(typeof size === undefined))
    {
        $("#offlinecart").show();
        $("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode);
        alert(" Product successfully added.");  
    }
    else if ((typeof color !== undefined)&&(typeof size === undefined))
    {
        $("#offlinecart").show();
        $("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'color='+color);
        alert(" Product successfully added.");  
    }
    else if ((typeof color === undefined)&&(typeof size !== undefined))
    {
        $("#offlinecart").show();
        $("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'size='+size);  
        alert(" Product successfully added.");
    }
    else if ((typeof color !== undefined)&&(typeof size !== undefined))
    {
        $("#offlinecart").show();
        $("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'color='+color+'size='+size);   
        alert(" Product successfully added.");
    }
}

3 个答案:

答案 0 :(得分:2)

当将字符串作为参数传递给函数时,字符串必须包含在'或"引号。

试试这个

     onclick='offline(11,"Pink","Small")'

      or

       onclick="offline(11,'Pink','Small')"

答案 1 :(得分:0)

如果您只是在寻找调试方法,则可以使用arguments对象。每个函数都有一个调用。它的作用类似Array,但没有所有原生方法。

例如,为了检查传递的前三个参数,您可以使用:

var firstThree = Array.prototype.slice.apply(arguments, 0, 3);

或者,要检查给定的参数数量,请在函数中添加:

console.log(arguments.length)

您可以在mdn找到有关该对象的更多详细信息。

更明确地回答:

通常,如果某些内容为undefined,则不会传入。例外情况是undefined是否会被传递。

这通常也是使用默认运算符的情况。例如,检查是否传递了某些内容,如果不是,则提供它:

var passedArg = passedArg || defaultArg;

话虽如此,看到代码调用它会很有用。它似乎是一个事件处理程序,它可能有其他问题。你可以把它添加到帖子吗?

答案 2 :(得分:0)

由于您使用jquery,为什么不进行点击事件而不是onclick内联事件,这样的事情,

$(document).on('click','#offlineId',function(){
   if ((typeof color !== undefined)&&(typeof size === undefined))
{
    $("#offlinecart").show();
    $("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode);
    alert(" Product successfully added.");  
}
else if ((typeof color !== undefined)&&(typeof size === undefined))
{
    $("#offlinecart").show();
    $("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'color='+color);
    alert(" Product successfully added.");  
}
else if ((typeof color === undefined)&&(typeof size !== undefined))
{
    $("#offlinecart").show();
    $("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'size='+size);  
    alert(" Product successfully added.");
}
else if ((typeof color !== undefined)&&(typeof size !== undefined))
{
    $("#offlinecart").show();
    $("#offlinecart").load('addoffline.php?orderno='+orderno+'pcode='+pcode+'color='+color+'size='+size);   
    alert(" Product successfully added.");
}});