سؤال

وهذا ما لدي الآن:

$("#number").val(parseFloat($("#number").val()).toFixed(2));

ويبدو فوضوي لي. أنا لا أعتقد أنني تسلسل المهام بشكل صحيح. لا بد لي أن أسميها لكل نص، أو يمكنني إنشاء وظيفة منفصلة؟

هل كانت مفيدة؟

المحلول

إذا كنت تفعل هذا لعدة مجالات، أو يفعل ذلك في كثير من الأحيان، وربما بعد ذلك البرنامج المساعد هو الجواب.
وهنا بدايات البرنامج المساعد مسج أن صيغ قيمة حقل إلى منزلتين عشريتين.
يتم تشغيل من قبل الحدث onchange الحقل. قد كنت تريد شيئا مختلفا.

<script type="text/javascript">

    // mini jQuery plugin that formats to two decimal places
    (function($) {
        $.fn.currencyFormat = function() {
            this.each( function( i ) {
                $(this).change( function( e ){
                    if( isNaN( parseFloat( this.value ) ) ) return;
                    this.value = parseFloat(this.value).toFixed(2);
                });
            });
            return this; //for chaining
        }
    })( jQuery );

    // apply the currencyFormat behaviour to elements with 'currency' as their class
    $( function() {
        $('.currency').currencyFormat();
    });

</script>   
<input type="text" name="one" class="currency"><br>
<input type="text" name="two" class="currency">

نصائح أخرى

وربما شيء من هذا القبيل، حيث يمكن تحديد أكثر من عنصر واحد إذا كنت ترغب؟

$("#number").each(function(){
  $(this).val(parseFloat($(this).val()).toFixed(2));
});

ونعدل وظيفة Meouw ليتم استخدامها مع keyup، لأنه عندما كنت تستخدم مدخلا يمكن أن يكون أكثر فائدة.

والتحقق من ذلك:

ويا هناك!heridev وأنا خلق وظيفة صغيرة في مسج.

ويمكنك محاولة المقبل:

وHTML

<input type="text" name="one" class="two-digits"><br>
<input type="text" name="two" class="two-digits">​

ومسج

// apply the two-digits behaviour to elements with 'two-digits' as their class
$( function() {
    $('.two-digits').keyup(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
    });
});

ONLINE تجريبى:

http://jsfiddle.net/c4Wqn/

و(@ heridev،vicmaster)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top