由于js里用不了java代码,当我点删除按钮删除一条信息时,想在点完删除按钮后用一个alert()弹出一个窗口提示删除成功和删除失败的用户名,我把servlet获取到的删除信息放在一个隐藏控件里,然后写一个函数result()来读取隐藏控件的value
function result(){
alert(document.getElementById("hiddenDelResult").value); 
}
可是点击删除按钮后就立马弹出alert窗口,此时要在点完alert按钮后页面才能获取到servlet发来的数据。
这样第一次点击删除后alert的是NULL,第二次删除时才alert第一次alert的信息。请问要怎么解决这个问题?

解决方案 »

  1.   

    LZ 是把BUTTUN  的 TYPE  设置成 submit了   然后  在  ONCLICK= 调用JS 的方法  
       
       ACTION = 你的SERVLET 
         你是这样做的吗?  
       
      

  2.   

    恩。差不多是那样
    我button类型是用button
    然后写个js function来action的
    function delSubmit(){
       userForm.action="delete";
       userForm.submit();
    }
    function checkSelected(){
    var checked = document.getElementsByName("checkDel");
    var userTable = document.getElementsByName("usersTable");
    var rowCount = checked.length;
    var idStr = new Array();
    for(var i= 0,j = 0;i < rowCount;i++){
         if(checked[i].checked){
         idStr[j++]= checked[i].value;
         }
    }
    document.getElementsByName("hiddenIdList")[0].value  =  idStr;
    delSubmit();
    }<form method="post" action = "#" name="userForm">
    <input type="Button" name="delButton" value="删除选中的" onclick="checkSelected();">只这个的
      

  3.   

    现在还没学ajax哦。有别的方法解决这个问题吗
      

  4.   

    你把alert提示之前,加个条件。就是是否是删除之后回来的结果。
    这个判断可以是document.getElementById("hiddenDelResult").value是否为空。
    也可以在后台java中处理,动态的生成这个alert语句。
      

  5.   

    不用AJAX的话.你提交会刷新页面吧?把你的函数学到body的onload去.
      

  6.   

    楼主说得是confirm吧。
            function confirmDel() {
                if (confirm("删除后将无法恢复,确认吗?")) return(true);
                else return(false);
            }<a href="#" onClick="return confirmDel()">删除</a>
      

  7.   

    最蠢的办法,判断document.getElementById("hiddenDelResult").value是否为空。 为空就不打印alert 咯,呵呵
      

  8.   

    问题就是在第一次点删除时页面还没得到刷新,要点完alert的确定按钮后,页面才收到servlet发来的数据,第二次点删除的时候就会alert出第一次的结果,也就是第一次怎么都是null,判断了也没用哦。写在onload里的话会造成一刷新页面就会跳出alert。。虽然可以达到效果。
      

  9.   

    将信息写到方法里,在onLoad()时间中判断里面是否有值
    有的话,给出成功提示
    否则,给出失败提示
    然后将值清空,以便下次显示
    这样不就可以了吗?