2011-04-18 31 views
0

我的JavaScript代碼不起作用:如何在窗體中使用javascript確認框,並且可以在其中使用jsp?

<script type="text/javascript"> 

    function verify() { 
     var amount = document.getElementById("amount"); 
     var commission = document.getElementById("commission"); 
     var commissionPayed = parseFloat(amount) * parseFloat(commission); 
      msg = "Withdraw Amount: " + amount.value + "\n Commission payed: " + commissionPayed.value; 
      //all we have to do is return the return value of the confirm() method 
      return confirm(msg); 
    } 

形式本身:

 <form action="Controller" method="post" onSubmit="return verify()"> 
          <h1>Withdraw</h1> 
      <input type="hidden" name="command" id="command" value="withdrawAction"> 
      <input type="hidden" name="commission" id="commission" value="${commission}"> 
      <p>Amount: <input type="text" name="amount" id="amount"/></p> 
      <input type="submit" name="name" value="Withdraw" onclick="confirmation()"/></p> 

     </form> 

在消息我得到的commissionPayed爲undefiened值。我究竟做錯了什麼?

有沒有在腳本中使用JSP的方法,如${object}

我可以在JSP中完成整個計算嗎?

回答

1

.value是每個表單元素的成員,而不是每個數字值。

function verify(){ 
    var amount = document.getElementById("amount").value; 
    var commission = document.getElementById("commission").value; 
    var commissionPayed = parseFloat(amount) * parseFloat(commission); 
    msg = "Withdraw Amount: " + amount + "\n Commission payed: " + commissionPayed; 
    //all we have to do is return the return value of the confirm() method 
    return confirm(msg); 
} 

當然,爲了安全起見,您需要在服務器– JavaScript的計算再次執行此相同的計算僅適合於用戶確認。諸如Greasemonkey,篡改數據和Firebug等工具存在;您不能相信Web瀏覽器爲後端業務邏輯提供準確的計算。

如果您在HTML,CSS或JavaScript代碼(尤其是字符串值)中包含任何服務器端變量,則需要正確轉義它們(使用適合相關數據格式的函數,否則需要使用cross-site scripting XSS)攻擊可能是可能的,我鏈接到的頁面包含易受攻擊的JSP代碼的示例代碼片段

例如,JSP有一個名爲<c:out>的標記,用於執行HTML轉義,但如果您要在JavaScript中依賴它代碼塊(或風格屬性),您的腳本可能不安全

+0

現在我得到NaN而不是calue – 2011-04-19 08:10:01

+0

您是否輸入了有效數字文本框和隱藏的表單域? [它適用於我。](http://jsfiddle.net/dYA5N/1/)順便說一句,你可以檢查NaN([不是數字](http://en.wikipedia.org/wiki/) NaN))的值使用[isNaN函數](https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Functions#isNaN_Function)。 – PleaseStand 2011-04-19 10:54:18

相關問題