2012-07-23 73 views
1

我在javascript中將值舍入爲.25,.50,.75和.00。代碼如下。無法在jsp中顯示期望值

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.爲什麼是這樣?

+0

你從哪裏調用函數?它似乎在這裏工作得很好:http://jsfiddle.net/y44zz/(如果你會原諒我使用內聯onblur屬性)。 – nnnnnn 2012-07-23 06:45:53

+0

是的。我正在從文本框中調用keyUp。這裏是代碼爲... Akshar 2012-07-23 06:50:49

+0

即使在小提琴鍵盤上也不會在小數點後面工作。任何想法如何獲得? – Akshar 2012-07-23 06:56:51

回答

0

我在使用onKeyUp的jsp中導致了麻煩。相反,我將它更改爲onBlur,因爲它提供了與我的要求相同的效果。並感謝你'nnnnnn'的建議。它的工作現在。

-1

你可以嘗試這樣的,

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

如果一切正常,你可以參考原因HERE第四個問題

+0

這是完全錯誤的,也似乎與鏈接的博客帖子中的第四點有關,這也是錯誤的。 – nnnnnn 2012-07-23 06:55:19

0

你設置你的文本框floorValue,不NEWVALUE的價值。

+0

嘗試再次提醒它alert(document.getElementById(「sample」)。value);看看它是否設置了? (最後)......可能是一個選擇問題? – 2012-07-23 06:44:41

0

嘗試使用onblur事件。因爲它在小提琴中運作良好。除此之外,我在您的代碼中看不到任何問題。