JavaScript将数字转换为货币并将负值货币复制到另一个文本框中
问题描述:
我试图将数字转换为货币并将该货币值作为负数复制到另一个文本框中。JavaScript将数字转换为货币并将负值货币复制到另一个文本框中
这里,当第一次触发onblur事件时,它会按预期的方式显示结果,但每次我将焦点放入文本框中时,它都会添加$ Sign。
所需的输出: -
<td> <asp:TextBox CssClass="from" runat="server" Text="$0.00" BackColor="Yellow" onkeyup="javascript:copy(event)" onblur="javascript:currency(event)" /> </td> <td> <asp:TextBox ID="TextBox2" CssClass="to" runat="server" Text="$0.00" ClientIDMode="Static" BackColor="Yellow"></asp:TextBox> </td>
JavaScript函数:
function copy(event) {
var parentRow = $(event.target).parents('tr');
var fromVal = parentRow.children('td').find('.from').val();
parentRow.children('td').find('.to').val(fromVal);
}
function currency(event) {
var parentRow = $(event.target).parents('tr');
var val1 = parentRow.children('td').find('.from').val();
var number = '$' + val1.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
parentRow.children('td').find('.from').val(number);
var buyerNumber = '($' + val1.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") + ')';
parentRow.children('td').find('.to').val(buyerNumber);
}
之所以使用父元素是我需要多个文本框相同的功能。
谢谢。
答
在这里,我需要检查的$位置标志 -
var val1 = parentRow.children('td').find('.textbox-seller').val();
if(val1.indexOf("$") != 0){
var number = '$' + val1.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
}
else {
number = val1.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
}
通过检查“$”符号的位置 - 我能达到预期的效果。