0

2 つの数値が乗算され、結果が 3 番目の入力に書き込まれるため、3 つの入力があります。ただし、完全に不要な場合は小数点を削除する必要があります。

<input type="text" name="input1" id="input1" value="" size="4" class="inputt" />
<br>
<input type="text" name="input2" id="input2" value="" size="4" class="inputt" />
<br>
<input type="text" readonly="readonly" name="input3" id="input3" value="" size="4" class="inputt" />

例えば; 150.00 は 150 と表示されますが、150.50 はそのままである必要があります。

また、結果が乗算後に書き込まれる場合、読み取り専用入力をクリックして、結果を適切に丸める必要があります。クリックする必要なく、結果番号の最終的な表示が必要です。理解を深めるために、最初の値に 12.5、2 番目の値に 12.1123 を書き込んで結果を確認してください。

$(document).ready(function () { 
        $("#input1, #input2").change(function() {
$("#input3").val($("#input1").val() * $("#input2").val());

var num =$("#input3").val();
num = num.toFixed(2);
        });
    });

$( function() {
 $('#input1').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;
 });
});

$( function() {
 $('#input2').keyup(function(){
   if($(this).val().indexOf('.')!=-1){         
       if($(this).val().split(".")[1].length > 5){                
           if( isNaN( parseFloat( this.value ) ) ) return;
           this.value = parseFloat(this.value).toFixed(2);
       }  
    }            
    return this;
 });
});

$('input#input3').blur(function(){
    var num = parseFloat($(this).val());
    var cleanNum = num.toFixed(2);
    $(this).val(cleanNum);

    });

ここにコードがありますhttp://jsfiddle.net/mLfkd/2/

4

2 に答える 2

0

もう一度クリックする必要があるのは、がフォーカスを失っ.blurた後にのみ発生する を使用しているためです。冗長なので、その部分をonおよび と#input3組み合わせ、ここのモジュラス トリックを使用して、小数点以下の桁数があるかどうかを確認しました。.change#input1#input2

$(document).ready(function () {
    $("#input1, #input2").change(function () {
        var num = parseFloat($("#input1").val()) * parseFloat($("#input2").val());

        if (num % 1 != 0) {
            num = num.toFixed(2);
        } else {
            num = parseInt(num);
        }

        $("#input3").val(num);
    });
});

$(function () {
    $('#input1').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;
    });
});

$(function () {
    $('#input2').keyup(function () {
        if ($(this).val().indexOf('.') != -1) {
            if ($(this).val().split(".")[1].length > 5) {
                if (isNaN(parseFloat(this.value))) return;
                this.value = parseFloat(this.value).toFixed(2);
            }
        }
        return this;
    });
});

作業フィドル: http://jsfiddle.net/FMpBz/1/

于 2013-09-26T18:55:47.443 に答える
0
var f1 = parseFloat(150.00).toFixed(2);
var f2 = parseFloat(150.50).toFixed(2);

function cut_it(a){
    var int_val =  parseInt(a); 
    var res = a / int_val ;
    if (res > 1) return a;
    return int_val;
}
// got the point? 
alert ( f1 + " -> " + cut_it (f1) + ", but "+  f2 + " -> " + cut_it (f2) );
于 2013-09-26T19:09:48.253 に答える