我一直试图调用一个可以接受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.");
}
}
答案 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.");
}});