【发布时间】:2016-02-05 03:48:10
【问题描述】:
我需要更改输入文本字段中货币的前缀。所以货币前缀会根据电台而变化。我可以在单击收音机时重置输入字段,但不能更改前缀。
这是我的代码:
Price (
<label>
<input type="radio" name="prop_crnt" class="currency" value="0" id="crnt-thb" required> THB</label>
<label>
<input type="radio" name="prop_crnt" class="currency" value="1" id="crnt-usd"> USD</label>):
Javascript:
//reset input on radio clicked
$("input[name='prop_crnt']").on('click', function() {
$('input.money').val('');
//change currency prefix
if ($('#crnt-thb').val()=="0") {
var crncy="฿";
}else{
var crncy="$";
}
});
var format = function(num) {
var str = num.toString().replace(crncy, ""),
parts = false,
output = [],
i = 1,
formatted = null;
if (str.indexOf(".") > 0) {
parts = str.split(".");
str = parts[0];
}
str = str.split("").reverse();
for (var j = 0, len = str.length; j < len; j++) {
if (str[j] != ",") {
output.push(str[j]);
if (i % 3 == 0 && j < (len - 1)) {
output.push(",");
}
i++;
}
}
formatted = output.reverse().join("");
return (crncy + formatted + ((parts) ? "." + parts[1].substr(0, 2) : ""));
};
//currency
$(".money").keyup(function(e) {
$(this).val(format($(this).val()));
});
这里是 jfiddle:https://jsfiddle.net/u0rc9trh/2/
【问题讨论】:
-
crncy未在格式函数中定义。也许您的意思是让它成为全球性的? -
这种情况
if ($('#crnt-thb').val()=="0")不会一直为真吗?您需要测试是否选中了该单选按钮,而不是它的值。或者使用this测试被点击单选的值。 -
^^^^ 和另一个问题。检查Demo
-
Tushar,为什么有时候里面是
undefined? -
那是我的代码吗?哈哈,没想到还在用;无论哪种方式,看看我原来的答案,你可以使用一个简单的 if/else 来检查货币:stackoverflow.com/questions/23966148/…
标签: javascript jquery