我正在尝试向我的函数添加if
语句,但它无效。 (所有变量都已在我的完整代码中声明。)
这是原始代码:
function processCheckout() {
//static paypal request arguments
var pp_settings = {
cmd: '_cart',
upload: 1,
no_note: 0,
bn: 'JQPayPalShop_ShoppingCart_EC_US',
tax: 0,
rm: 2,
custom: ''
};
//copy settings.paypal to pp_settings
$.extend(pp_settings, settings.paypal);
//create form for POST request
var form = $('<form />');
form.attr('action', 'https://www.paypal.com/cgi-bin/webscr');
form.attr('method', 'post');
form.attr('target', '_blank');
//add paypal variables
var arg;
for (var key in pp_settings) {
arg = $('<input type="hidden" />');
arg.attr('name', key);
arg.attr('value', pp_settings[key]);
//add to form
form.append(arg);
}
//now process items in cart
var item_index = 0;
//properties map for 'cart' to the paypal variables
var map = {
name: 'item_name',
quantity: 'quantity',
checkout_price: 'amount',
shipping: 'shipping',
number: 'item_number',
handling: 'handling'
};
for (var g in cart) {
//group
for (var i in cart[g]) {
//item
if (i == 'length')
continue;
//skip length property
item_index++;
//process item
for (var k in map) {
arg = $('<input type="hidden" />');
arg.attr('name', map[k] + '_' + item_index);
arg.attr('value', cart[g][i][k]);
form.append(arg);
}
}
}
//add form to the document
shop.append(form);
form.submit();
//remove form
shop.remove(form);
}
这是我试图修改的代码:
function processCheckout() {
if (canBuy = false)
{
alert("False");
}
else
{
//static paypal request arguments
var pp_settings = {
cmd: '_cart',
upload: 1,
no_note: 0,
bn: 'JQPayPalShop_ShoppingCart_EC_US',
tax: 0,
rm: 2,
custom: ''
};
//copy settings.paypal to pp_settings
$.extend(pp_settings, settings.paypal);
//create form for POST request
var form = $('<form />');
form.attr('action', 'https://www.paypal.com/cgi-bin/webscr');
form.attr('method', 'post');
form.attr('target', '_blank');
//add paypal variables
var arg;
for (var key in pp_settings) {
arg = $('<input type="hidden" />');
arg.attr('name', key);
arg.attr('value', pp_settings[key]);
//add to form
form.append(arg);
}
//now process items in cart
var item_index = 0;
//properties map for 'cart' to the paypal variables
var map = {
name: 'item_name',
quantity: 'quantity',
checkout_price: 'amount',
shipping: 'shipping',
number: 'item_number',
handling: 'handling'
};
for (var g in cart) {
//group
for (var i in cart[g]) {
//item
if (i == 'length')
continue;
//skip length property
item_index++;
//process item
for (var k in map) {
arg = $('<input type="hidden" />');
arg.attr('name', map[k] + '_' + item_index);
arg.attr('value', cart[g][i][k]);
form.append(arg);
}
}
}
//add form to the document
shop.append(form);
form.submit();
//remove form
shop.remove(form);
}
}
我希望整个功能仅在canBuy
变量等于true
时才有效,否则alert("False")
。
答案 0 :(得分:8)
// WRONG
if (canBuy = false)
// GOOD
if (canBuy == false)
// BETTER
if (!canBuy)
答案 1 :(得分:6)
新if
语句应使用==
(比较)而不是=
(作业)
if (canBuy = false)
更改为...
if (canBuy == false)
答案 2 :(得分:3)
将if (canBuy = false)
更改为if (canBuy == false)
你错过了一个额外的等号。
答案 3 :(得分:2)
if (canBuy = false)
进行分配,应该==
进行比较
if (canBuy == false)
答案 4 :(得分:2)
假设在canBuy
函数可以看到processCheckout
的地方==
,请将您的初始比较更改为===
或if (!canBuy) {
,或者使用if (canBuy) {
或{ {1}}(取决于您喜欢阅读逻辑的方式)。
//Assignment
if (canBuy = false) {...}; //assignment, won't work.
//Coerced comparison
if (canBuy == false) {...} //this would work
//Non-coerced compparison
if (canBuy === false) {...} //if canBuy is an actual boolean, this would work
//Also (in the category of "is more readable"...)
if (!canBuy) { //this would work
//...
}
if (canBuy) { //as would this
//...
}