1

javascriptの値を.25、.50、.75、.00に四捨五入していました。コードは以下の通りです。

function roundOff(obj) {
    //alert(document.getElementById("sample").value);
    var val=obj.value;
    var newValue;

    var floorValue = Math.floor(val);
    var remainder = val - floorValue;
    if (remainder < 0.325) {
        if (remainder < 0.125) {
            newValue = floorValue;

        } else {
            newValue = floorValue + 0.25;
        }
    } else {
        if (remainder < 0.625) {
            newValue = floorValue + 0.5;
        } else if (remainder < 0.875) {
            newValue = floorValue + 0.75;
        } else {
            newValue = floorValue + 1;
        }
    }
    alert(floorValue);

        alert(newValue);
        document.getElementById("sample").value=newValue;

    //return obj;
}

ただし、値をjspページに戻すことはできません。5.5と入力すると、jspに5のみが表示されます。しかし、アラートを出して、floorvalueの値を確認すると、5.5になります。しかし、jspのテキストボックスに配置すると、5しか表示されません。なぜそうなのですか?

4

4 に答える 4

0

onblurイベントを使用してみてください。それはフィドルでうまく機能するからです。それ以外は、コードに問題はありません。

于 2012-07-24T11:57:21.333 に答える
0

テキストボックスの値をnewValueではなくfloorValueに設定しています。

于 2012-07-23T06:20:48.373 に答える
0

問題の原因となっているjspでonKeyUpを使用していました。代わりに、要件と同じ効果を提供していたので、onBlurに変更しました。そして、あなたの提案をありがとう'nnnnnn'。その現在動作しています。

于 2012-07-24T04:41:37.807 に答える
-1

あなたはこのように試すことができます、

document.getElementById("sample").value="+floorValue+";

それが機能する場合は、ここで理由を参照できます4番目の質問

于 2012-07-23T06:13:36.577 に答える