使用jQuery格式化textarea输入onload的值

时间:2013-10-15 17:49:09

标签: jquery html textarea

背景:

我有一个包含大量textarea输入字段的网页,每次加载页面时都会从数据库加载数值(通过网页服务器在每个页面加载时查找的注释标记,然后在其位置插入值)。例如:

<input type="text" value="<!--#etc etc etc -->"/>

我遇到的问题是从数据库中提取的数据是使用额外的十进制空格格式化的,我不需要显示,而且我无法重新格式化数据库中的数据。

经过一些搜索,我找到了一个非常有用的jquery教程(在这里找到:how-to-limit-two-decimal-digits-in-a-jquery-input-field.html),它完全符合我的需要,但是在onkeyup事件上运行。由于我的值被插入页面而不是用户,我需要在页面加载完成后自动运行该函数。这可能吗?

以下是我最近尝试使用教程中的html /脚本作为基础,但到目前为止,在将keyup事件修改为(我相信的)onload事件后,我没有任何运气:

<input type="text" name="one" class="two-digits" value="123.45126"><br>
<input type="text" name="two" class="two-digits" value="654.31221">

// apply the two-digits behaviour to elements with 'two-digits' as their class
$(window).load(function() {
$('.two-digits').ready(function(){
    if($(this).val().indexOf('.')!=-1){         
        if($(this).val().split(".")[1].length > 2){                
            if( isNaN( parseFloat( this.value ) ) ) return;
            this.value = parseFloat(this.value).toFixed(2);
        }  
     }            
     return this; //for chaining
});
});

任何输入都将非常感谢!

编辑:我忘了提到网络服务器是一个嵌入式qnx slinger服务器。所以我没有(也不能添加)服务器端支持php或任何其他常见的服务器端脚本语言。

2 个答案:

答案 0 :(得分:0)

如果要从数据库中提取信息,并且使用的是PHP,则可以使用此功能:

number_format($DB_VAL, 2);

将数字四舍五入为该数字之后的2个数字。

编辑:

使用.each jquery函数循环显示文本框,并使用显示的函数更改其值。

答案 1 :(得分:0)

您需要使用.each()。这将使用类

调用每个项目上的函数
$('.two-digits').each(function(){
    if($(this).val().indexOf('.')!=-1){         
        if($(this).val().split(".")[1].length > 2){                
            if( isNaN( parseFloat( this.value ) ) ) return;
            this.value = parseFloat(this.value).toFixed(2);
        }  
     }            
     return this; //for chaining
});

http://jsfiddle.net/qFQCE/