2015-02-18 50 views
-1

可能有一个非常简单的修复方法,但我无法找到任何类似的问题给我一个答案。我需要添加一个变量而不添加(使用算术运算符)

的Javascript

products = [" + Ticket", " + VIP", " + Shirt"]; 
v_mult = products[0] + par_left + v + par_right; 
v_sing = products[0]; 

if (ticket == 3 & document.getElementById("amount").value <= 1) { 
    document.frm.display.value -= v_mult, document.frm.display.value = v_sing; 
}; 

if (ticket == 3 & document.getElementById("amount").value > 1) { 
    document.frm.display.value -= v_sing, document.frm.display.value = v_mult; 
}; 

//function for adding vip tickets 
if (ticket == 4 & document.getElementById("amount").value <= 1) { 
    document.frm.display.value -= s_mult, document.frm.display.value = s_sing; 
}; 

if (ticket == 4 & document.getElementById("amount").value > 1) { 
    document.frm.display.value -= s_sing, document.frm.display.value = s_mult; 
}; 

看,如果我只是把...

if (ticket == 3 & document.getElementById("amount").value <= 1) { 
    document.frm.display.value -= v_mult, document.frm.display.value = v_sing; 
}; 

它改变 “显示”(文本框)的值设置为 “票” 。这很好,但它不允许我将“VIP”附加到票证上;它只允许我用“VIP”取代“Ticket”。

这是因为我正在使用“= v_mult”。我确信这是问题所在,我只是没有解决方案。我希望该值为“Ticket”,但我不想在需要添加“VIP”时删除“Ticket”。 “+ =”返回“NaN”,“=”只是改变“display”的整个值,而不是编辑/附加新值。

+0

总之,我需要的“+”操作符为“追加”,而不是“数学运算”工作。 – 2015-02-18 00:15:43

+2

你的问题很明显是泥巴。有未声明的变量,未定义的变量以及用逗号分隔的表达式,这些逗号应该是单独的语句。如果您发布显示问题的最小“有效”示例,它将大有帮助。 – RobG 2015-02-18 00:22:03

+1

我确定你的意思是'&&'无处不在,你现在已经按位分配了'&' – cbreezier 2015-02-18 00:23:18

回答

0
document.frm.display.value -= v_mult, document.frm.display.value = v_sing; 

document.frm.display.value -= (" + Ticket" + document.frm.display.value = " + Ticket" 

我想要的值是 “票”,但我不希望 “门票” 待擦除的,当我需要添加“VIP”。

我想你想是这样的:

VAL = document.frm.display.value;

document.frm.display.value =(v_mult + val + v_sing);

你可能会得到NaN的,因为你要添加字符串的数字带+ =

+0

如果你在jsfiddle中看到了,当我点击“Ticket”时,“+ Ticket”弹出到顶部文本框中。当我点击“VIP”时,“+ VIP”弹出到“+ Ticket”的顶部文本框IN PLACE中。我如何保持这两种状态,只需在“+ Ticket”中添加“+ VIP”? @joatis – 2015-02-18 00:47:19

+0

小提琴现在不适合我。当你需要它们时,我会将它们保存为单独的值并进行连接,并且只要覆盖以前的值即可。 – joatis 2015-02-18 01:00:26

+0

不需要分组操作符'()'。 – RobG 2015-02-19 00:10:55

0

使用.concat()

newString = string1.concat(string2); 

而不是

newString = string1 + string2; 
+1

这将如何改变? OP中的所有值看起来都是字符串,所以“+”已经在串联。 – RobG 2015-02-18 00:27:06

+0

我读了标题,而不是代码 – Kerndog73 2015-02-18 00:28:01