如何在表单中使用javascript确认框,我可以在其中使用jsp吗?

时间:2011-04-18 21:56:04

标签: javascript forms jsp

我的JavaScript代码不起作用:

<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视为未定值。我做错了什么?

有没有办法在脚本中使用JSP,例如${object}

我可以在JSP中完成整个计算吗?

2 个答案:

答案 0 :(得分: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,Tamper Data和Firebug等工具;您不能相信Web浏览器为后端业务逻辑提供准确的计算。

如果在HTML,CSS或JavaScript代码中包含任何服务器端变量(尤其是字符串值),则需要对它们进行适当的转义(使用适合相关数据格式的函数,或者{{3 (XSS)攻击可能是可能的。我链接到的页面包含易受攻击的JSP代码的示例片段。

例如,JSP有一个名为cross-site scripting的标记,用于执行HTML转义。但是,如果您在JavaScript代码块(或样式属性)中依赖它,则您的脚本可能不安全。

答案 1 :(得分:0)

  

我可以在jsp中完成整个计算吗? ...我是在服务器端做的,是的。不应该相信客户端的这种计算。

要在jsp中获取值,您可以使用标准标记:<c:out value="${user.firstName}"/>

如果你谷歌也有一些关于标签主题的教程。例如http://www.developer.com/java/ejb/article.php/1447551/An-Introduction-to-JSP-Standard-Template-Library-JSTL.htm