2015-02-18 28 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