格式化文本框以包含“£”

时间:2015-07-22 11:15:48

标签: razor

我有一个文本框,我想在用户开始输入数字时包含一个£符号。

例如:£32

我该怎么做:

@Html.TextBox("amountFrom", "", new { @class = "form-control", @placeholder = "£" })

目前我只有一个占位符,在用户输入数字之前会加上“£”符号。我希望在用户开始输入后立即显示该标志。

1 个答案:

答案 0 :(得分:0)

快速而肮脏的修复方法是使用JavaScript或jQuery。当文本框发生变化时,会在文本框中已有的内容的前面添加£。

@Html.TextBox("amountFrom", "", new { @class = "form-control", @id="price" })

<script>
$(function() {
    $('#price').on('input',function() { 
        var price = $('#price').val();
        if (price.substring(0, 1) == '£')
        {
            price = price.substring(2);
        }

        $('#price').val('£ ' + price);
    });
});
</script>

请看这个小提琴:http://jsfiddle.net/49gdh95z/

稍微更好的解决方案可能是使用显示英镑符号背景图像的CSS,例如StackOverflow用于在其搜索框上显示放大镜图像。

可以在此处找到此示例的小提琴:http://jsfiddle.net/7pjm9v66/

请注意,第二个示例会在输入框中输入内容后立即添加井号(并且不会预先显示)。如果您希望始终显示井号,那么您当然可以省略JavaScript并将其直接应用的CSS移动到CSS中的#price元素。