从javascript将旧值传递回javabean

时间:2011-04-17 21:36:18

标签: javascript jsp javabeans

我有这条javascript:

<script type="text/javascript">
function show_confirm()
{

var type = '<%= nameBean.getTxnType() %>';
var old_cd = '<%= nameBean.getCode() %>';
var new_cd = document.getElementById("tbCode").value;
var cd;

if (type == "Update")
  {
    if(old_cd != new_cd)
    { 
        var response = confirm("Code already exists. Do you want to replace it?");
        if (response){
                    document.NameUpdate.submit();
        }
        else{
            cd = old_cd;

    }
  }
</script>

这就是我在jsp页面中调用此脚本所做的事情:

<INPUT TYPE=SUBMIT NAME="action" onclick="show_confirm()" VALUE="Save Changes">

当我点击确定它的工作正常..但我的问题是如何将old_cd的值传递回bean,因此它不会使用用户在tbcode框中输入的新代码更新它。用户点击取消我想忽略在文本框中输入的值而不是更新数据库中的那个字段

1 个答案:

答案 0 :(得分:0)

我对这里的用例并不完全清楚,但这里有几个答案:

如果问题是“如何在用户点击取消时停止提交表单?”,那么答案是,在点击处理程序中返回false

if (response){
    document.NameUpdate.submit();
}
else{
    cd = old_cd;
    return false;
}

如果您无论用户点击哪一个都需要提交表单,那么您可能需要在隐藏的input字段中提交旧值,并且有办法告诉服务器用户点击“取消” (可能是另一个隐藏的领域),例如:

<!-- html -->
<input type="hidden" name="old_cd" value="<%= nameBean.getCode() %>">
<input type="hidden" id="canceled" name="canceled" value="0">

和javascript:

// js snippet
if (response){
    document.NameUpdate.submit();
}
else{
    document.getElementById("canceled").value = 1;
    return true;
}