我有一个文本框(#price
),可以在focus
和blur
上将数字转换为货币格式:
$('#price').blur(function() {
if ($('#price').val().length > 0) {
$('#price').formatCurrency();
}
});
$("#price").focus(function(){
if ($('#price').val().length > 0) {
$('#price').formatCurrency();
}
});
当我单击表单上的某个按钮时,它应转换#price
文本框中的值(如果它尚未转换为货币格式),这里是按钮单击的处理程序(#addToTable
) :
$("#addToTable").click(function() {
i++;
var newPrice;
var priceText = $("#spanPrice").text();
var toRemove = 'Each: ';
var priceEach = priceText.replace(toRemove,'');
var rowId = "itemEntry" + i + "";
if ($("#price").val().indexOf('.') == -1) {
newPrice = $("#price").formatCurrency();
alert(newPrice);
}
else {
newPrice = $("#price").val();
alert(newPrice+" 1");
}
var strRowEntry = '<tr id="itemEntry' + i + '"><td class="rowItem">' + $("#itemChoice option:selected").text() +'</td><td class="rowItem">' + priceEach + '</td><td class="rowItem">' + $("#quantity").val() + '</td><td class="rowItem">' + newPrice + '</td><td class="rowItem"><a href="javascript:void(0);" onclick="doThis(' + rowId + ');"><img class="deleteRow" src="edit.png" border="0" id="imgEdit" /></a></td></tr>';
$('#tblItems tr:last').after(strRowEntry);
$("#modalNew").hide();
$('#modalNew').find('input:text').val('');
$('#modalNew').find('span').text('Each: $9.00');
$('#modalNew').find('SELECT').val('Wine');
});
我检查文本框是否已在if
语句中转换为货币格式,如果它尚未转换,则转换为货币。如果数字已经转换,else
语句只会得到值。
else
语句正常,但if
语句显示[object Object]
如何解决问题?
答案 0 :(得分:1)
这是因为formatCurrency()
没有返回格式化的值,它会在文本框中设置文本格式。因此,如果要访问格式化的值,则必须在文本框中使用val()
。
$("#price").formatCurrency();
newPrice = $("#price").val();
alert(newPrice);
答案 1 :(得分:0)
如果其他人遇到同样的问题,我必须将重点放在#price
文本框上,然后获取值。
if ($("#price").val().indexOf('.') == -1) {
$("#price").focus();
newPrice = $("#price").val();
console.log(newPrice);
alert(newPrice);
}