开发者

Jquery - How Do I Insert a Character into an input

Can someone help me out with this please...

I am doing a web form. I would like to insert the dollar sign into some INPUTs that have a numberfield class. I want the user's content to follow the dollar sign or 开发者_运维知识库course.

This inserts the dollar sign OK, but the content ends up in front of it.

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

NOTE - the dollar sign is required because this is financial data (nothing to do with jquery! :) )

in other words - someone types in '100' and it becomes '$100')


You can do something like this:

$('input.numberfield').each(function() {
  $(this).val('$' + $(this).val());
}

In 1.4, a simple more complete solution for your scenario:

 $('input.numberfield').keyup(function() {
   $(this).val(function(i,v) {
     return '$' + v.replace('$',''); //remove exisiting, add back.
   });
 });


Why make your life complex? Just put the dollar sign into the HTML outside of the input element...

<span style="border: inset 1px black; padding: 1px;">
  $<input style="border: none; padding: 0;">
</span>


You can pass a function to val() and use a regular expression to add a $ to the front if there isn't one there already:

$("input.numberfield").val(function(i, val) {
  return val.replace(/^\s*(?!\$)/, "$");
});

The above regex means replace a sequence of white space at the beginning of the value that isn't followed by a dollar sign with a dollar sign. This would work too:

$("input.numberfield").val(function(i, val) {
  return val.replace(/^\s*(\$)?/, "$");
});


var store = $("input.numberfield");
store.val("$" + store.val());
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜