有人可以帮我解决这个问题......
我正在做一个网络表单。我想将美元符号插入到一些具有数字类的INPUT中。我希望用户的内容遵循美元符号或课程。
这会插入美元符号OK,但内容最终会在它前面。
$('input.numberfield').val('$');
注意 - 美元符号是必需的,因为这是财务数据(与jquery无关!:)
换句话说 - 某人输入'100'并且变为'$ 100')
答案 0 :(得分:10)
您可以这样做:
$('input.numberfield').each(function() {
$(this).val('$' + $(this).val());
}
在1.4中,为您的场景提供了一个简单的更完整的解决方案:
$('input.numberfield').keyup(function() {
$(this).val(function(i,v) {
return '$' + v.replace('$',''); //remove exisiting, add back.
});
});
答案 1 :(得分:8)
为什么要让你的生活变得复杂?只需将美元符号放入输入元素的HTML 外部 ......
<span style="border: inset 1px black; padding: 1px;">
$<input style="border: none; padding: 0;">
</span>
答案 2 :(得分:4)
你可以将一个函数传递给val()
并使用正则表达式将$
添加到前面(如果那里没有):
$("input.numberfield").val(function(i, val) {
return val.replace(/^\s*(?!\$)/, "$");
});
上述正则表达式意味着在不是的值的开头替换一个空白序列,后跟带有美元符号的美元符号。这也有用:
$("input.numberfield").val(function(i, val) {
return val.replace(/^\s*(\$)?/, "$");
});
答案 3 :(得分:0)
var store = $("input.numberfield");
store.val("$" + store.val());