Jquery - 如何将字符插入输入

时间:2010-02-22 02:03:37

标签: jquery

有人可以帮我解决这个问题......

我正在做一个网络表单。我想将美元符号插入到一些具有数字类的INPUT中。我希望用户的内容遵循美元符号或课程。

这会插入美元符号OK,但内容最终会在它前面。

$('input.numberfield').val('$');

注意 - 美元符号是必需的,因为这是财务数据(与jquery无关!:)

换句话说 - 某人输入'100'并且变为'$ 100')

4 个答案:

答案 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());