我一直在尝试更新总价格,当有人改变选择选项。下面是我使用的select元素:为什么我的CoffeeScript if/else语句不起作用?
<select id="payment_talks_purchased" name="payment[talks_purchased]">
<option value="1">One</option>
<option value="2">Three</option>
</select>
这是jQuery的我使用的是:
jQuery(document).ready(function() {
var price = $(".total-price span.price")
var save = $(".savings")
$("#payment_talks_purchased").change(function() {
var selection = $("#payment_talks_purchased").val()
if (selection == 2) {
price.html("$12");
save.css("visibility", "visible");
} else if (selection == 1) {
price.html("$5");
save.css("visibility", "hidden");
}
});
});
它完美。它将价格更改为12美元,并显示折扣消息。如果我将选择选项更改回One/1,则会将文本更改回$ 5并删除折扣消息。
我将其转换为CoffeeScript,但它只适用于我进行第一次更改。价格已更新。但是,当我尝试将其更改回选项1时,它不会更新。
jQuery ->
price = $(".total-price span.price")
save = $(".savings")
select = $("#payment_talks_purchased")
select.change ->
selection = select.val()
if selection = 2
price.html "$12"
return save.css "visibility", "visible"
else if selection = 1
price.html "$5"
return save.css "visibility", "hidden"
我一直在这工作了几个小时,并在我的智慧结束。任何帮助将不胜感激。
没错。如果您想将表单输入转换为数字,请使用'selection = + select.val()'。 –
非常感谢您的帮助。那就是诀窍。 –
除非你明确地想要触发类型强制,否则不是比较首选吗? – jpmc26