您的位置:程序门 -> java -> web 开发



一个奇怪的问题?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个奇怪的问题?
发表于:2008-01-22 21:27:29 楼主
今天做了一天什么事也没干成,就找出了这样一个到现在还没想通的问题:
基本相同的两个页面一个能正常运行一个却怎么也运行不起来(不过我记得以前好像是能运行的)

一.不能运行的页面的问题出现在下面的代码中:
        这是个javascript代码:
    function   reminddel(){
    var   isdel   =   confirm("您确定要删除这条信息吗?");
    if(!isdel){
    document.getelementbyid("deltag").href="inportstatisticsinflistpage.do?listpagetype=excuterec";(标记一)
    }
    }
        调用它的是下面这个标签:
    <a   class="delete"   id="deltag"   onclick="reminddel();"   href="inportstatisticsdelete.do?inportfilename= <bean:write   name="inportfromexcel"   property="inportfilename"/>   &   inporttype= <bean:write   name="inportfromexcel"   property="inporttype"/> ">
        说明:
                  inportstatisticsdelete.do后面带有两个参数inportfilename和inporttype,这两个参数的值都能正常获取.
        问题出到在它带的两个参数上,当代码执行了(标记一)时页面原本应该跳到inportstatisticsinflistpage.do中去执行,但这时却跑到inportstatisticsdelete.do里执行去了
        更奇怪的是,如果inportstatisticsdelete.do后面的两个参数去掉其中一个,那么它能正常跳到inportstatisticsinflistpage.do中去.

二.能运行的另一个页面的代码如下:
        javascript代码:
                  function   reminddel(){
    var   isdel   =   confirm("您确定要删除这条信息吗?");
    if(!isdel){
    document.getelementbyid("deltag").href="inportfromexceldelete.do";
    }
    }
        <a   class="delete"   id="deltag"   onclick="reminddel();"   href="inportfromexceldelete.do?startdel=true   &   inportEXECuteuserid= <bean:write   name="inportfromexcel"   property="inportEXECuteuserid"/>   &   inportEXECutetime= <bean:write   name="inportfromexcel"   property="inportEXECutetime"/> "> </a>
                说明:
                          inportfromexceldelete.do后面所带的三个参数都能正常获取.

一直没有想明白,这会是什么问题呢?有什么东西跟参数传递的个数有关或者是其它什么问题出现了?
期待高手出现,小弟不胜感激.......
发表于:2008-01-22 22:43:031楼 得分:0
没看出具体原因,建议的调试方法,在点击之后弹出个alert打印一下连接的内容,看与要提交的地点是否一致。
可以的话请把运行后生成jsp的原代码贴出来,一堆bean:write看着真费尽……
发表于:2008-01-22 22:46:262楼 得分:0
友情顶帖!
发表于:2008-01-23 09:10:333楼 得分:0
if(!isdel)这里是不删除的时候,是不是你自己判断错误.走到if里边去了么
发表于:2008-01-23 09:13:034楼 得分:0
注意你的第二个例子是同一个处理,只是一个带参数,一个不带.
发表于:2008-01-23 09:16:195楼 得分:0
我用alert试过了
判断没问题
关键是.do后面的参数去掉其中任意一个后程序都能顺利进行
这才是让人挺想不通的事
单是找出这个问题所在这花了我一个下午加一个晚上的时间
发表于:2008-01-23 09:20:016楼 得分:0
<!doctype   html   public   "-//w3c//dtd   html   4.01   transitional//en">
<script   type="text/javascript"   src="js/request.js"> </script>
<script   type="text/javascript"   language="javascript">
            var   firstin   =   true;
            var   clickcount   =0   ;
    var   colors   =   new   array(3);
    colors[0]   =   "#ddeffb";
    colors[1]   =   "#feeaf4";
    colors[2]   =   "#ebfeea";        

function   initfunc()   {
        var   url   =   "getloginuserallprivileges.do";
        req   =   new   request();
        req.get(url,handledata,false);
        function   handledata(data){
      if   (data   ==   null)   {
      return   false;
      }
      var   privileges   =   data.split(",");
              //设置表头控件显示
      var   thelements   =   document.getelementsbytagname("th");
      var   thobject   =   gettdobject(thelements);
     
      showelement(thobject,   privileges);
              //设置单元格控件显示
      var   tdelements   =   document.getelementsbytagname("td");
      var   tdobject   =   gettdobject(tdelements);      
      showelement(tdobject,   privileges);                                
                      //设置排序图标    
      setsorticon();    
  }
}

            //totalpage为总页数,modulefilename为当前列表页面执行的action名称,如privilegelistpage.do
function   gotopage(totalpage,   modulefilename)   {
var   gotopagenumber   =   document.getelementbyid("goto").value;
if   (gotopagenumber   ==   "")   {
alert("\u8bf7\u8f93\u5165\u9875\u7801!");
return   false;
}
if   (gotopagenumber   <   1   ¦ ¦   gotopagenumber   >   totalpage)   {
alert("\u8f93\u5165\u7684\u9875\u7801\u4e0d\u5bf9\uff0c\u8bf7\u51651\u81f3"   +   totalpage   +   "\u4e2d\u7684\u4efb\u610f\u4e00\u4e2a\u503c!");
return   false;
}
if   (gotopagenumber   > =   1   &&   gotopagenumber   <=   totalpage)   {
var   url   =   modulefilename   +   "?operation=goto&destination="   +   gotopagenumber;
if(destinationvalidate(gotopagenumber)){
      window.location.href(url);
}
}   else   {
alert("\u8bf7\u8f93\u5165\u6570\u5b57");
return   false;
}
}

</script>


<html>
<head>
<base   href="http://localhost:8080/misft/">
<meta   http-equiv="content-type"   content="text/html;   charset=utf-8">
<script   type="text/javascript">
    function   submit(){
        document.getelementbyid("form1").submit();
    }  
    function   concel(){
        window.history.back();
    }
    function   reminddel(){
    var   isdel   =   confirm("您确定要删除这条信息吗?");
    if(!isdel){
    document.getelementbyid("deltag").href="inportstatisticsinflistpage.do?listpagetype=excuterec";
    }
    }
</script>
</head>
<link   href="css/styleforlistpage.css"   type="text/css"   rel="stylesheet">
<body   onload="initfunc();"   topmargin="36px">

<input   id="columnname"   type="text"
value=""   style="display:none">
<input   id="counter"   type="text"
value="0"   style="display:none">
<table   class="table1">
    <tr> <td   align="center">
    <h4> 导入信息错误列表 </h4>
    </td> </tr>
</table>  

<table   class="table2">
          <tr>
<td>
<a   class="return"   href="inportstatisticfromexcel.do?start=true"> </a>
</td>
</tr>
<tr>
<td   width="100%"   align="center">

</td>
</tr>

</table>

<table   id="table_content">
<tr>
<th   onclick="orderbyfunc('model.inportfilename','inportstatisticsinflistpage.do?listpagetype=excuterec');">
导入文件名
<img   id="model.inportfilename_asc"   src="pic/up.gif"
style="display:none">
<img   id="model.inportfilename_desc"   src="pic/down.gif"
style="display:none">
</th>
<th   width='15%'  
align="center"
onclick="orderbyfunc('model.inportEXECutetime','inportstatisticsinflistpage.do?listpagetype=excuterec');">
导入时间
<img   id="model.inportEXECutetime_asc"   src="pic/up.gif"style="display:none"> <img   id="model.inportEXECutetime_desc"   src="pic/down.gif"style="display:none">
</th>
<th   width='20%'  
onclick="orderbyfunc('model.inportEXECutetolnum','inportstatisticsinflistpage.do?listpagetype=excuterec');">
导入操作记录总数 <img   id="model.inportEXECutetolnum_asc"   src="pic/up.gif"style="display:none"> <img   id="model.inportEXECutetolnum_desc"   src="pic/down.gif"style="display:none">
</th>
<th   width='20%'  

onclick="orderbyfunc('model.inportEXECutetolnum','inportstatisticsinflistpage.do?listpagetype=excuterec');">
导入操作记录失败数 <img   id="model.inportEXECutefailnum_asc"   src="pic/up.gif"style="display:none"> <img   id="model.inportEXECutefailnum_desc"   src="pic/down.gif"style="display:none">
</th>

<th   width="28"   name="258"   style="display:none">
删除
</th>
</tr>



<tr   id="2004聘请外教数量统计.xls(2004)"   onclick="setcolor('2004聘请外教数量统计.xls(2004)');">

<td   align="left">
&nbsp;
2004聘请外教数量统计.xls(2004)
</td>
<td   align="center">
2008-01-21   04:45:40.0
</td>
<td   align="center">
81
</td>
<td   align="center">
0
</td>
                                                <td   name="63"   style="display:none">
                                    <a   class="delete"   id="deltag"   onclick="reminddel();"   href="inportstatisticsdelete.do?inportfilename=2004聘请外教数量统计.xls(2004)&inporttype=3">
                                    </a>
                                </td>  
</tr>

<tr   id="2004国籍统计.xls(2004)"   onclick="setcolor('2004国籍统计.xls(2004)');">

<td   align="left">
&nbsp;
2004国籍统计.xls(2004)
</td>
<td   align="center">
2008-01-21   04:46:31.0
</td>
<td   align="center">
79
</td>
<td   align="center">
0
</td>
                                                <td   name="63"   style="display:none">
                                    <a   class="delete"   id="deltag"   onclick="reminddel();"   href="inportstatisticsdelete.do?inportfilename=2004国籍统计.xls(2004)&inporttype=2">
                                    </a>
                                </td>  
</tr>

<tr   id="2006聘用统计(省教厅).xls(2006)"   onclick="setcolor('2006聘用统计(省教厅).xls(2006)');">

<td   align="left">
&nbsp;
2006聘用统计(省教厅).xls(2006)
</td>
<td   align="center">
2008-01-21   04:48:48.0
</td>
<td   align="center">
34
</td>
<td   align="center">
0
</td>
                                                <td   name="63"   style="display:none">
                                    <a   class="delete"   id="deltag"   onclick="reminddel();"   href="inportstatisticsdelete.do?inportfilename=2006聘用统计(省教厅).xls(2006)&inporttype=1">
                                    </a>
                                </td>  
</tr>

<tr   id="2004国籍统计.xls(2004)"   onclick="setcolor('2004国籍统计.xls(2004)');">

<td   align="left">
&nbsp;
2004国籍统计.xls(2004)
</td>
<td   align="center">
2008-01-22   09:54:48.0
</td>
<td   align="center">
79
</td>
<td   align="center">
0
</td>
                                                <td   name="63"   style="display:none">
                                    <a   class="delete"   id="deltag"   onclick="reminddel();"   href="inportstatisticsdelete.do?inportfilename=2004国籍统计.xls(2004)&inporttype=2">
                                    </a>
                                </td>  
</tr>


</table>

<table   id="table_bottom">
<tr>
<td>
      &nbsp;

1
页,
&nbsp;

1
页,
&nbsp;

4
条记录,
&nbsp;

【首页】
&nbsp;

上一页
                                     
&nbsp;

下一页
                                     
&nbsp;

【末页】
&nbsp;
跳转到
<input   id="goto"   name="text"   type="text"   size="3">

<input   name="button"   type="button"   value="go"
onclick="gotopage(1,'inportstatisticsinflistpage.do?listpagetype=excuterec')";>
</td>
</tr>
</table>
</body>
</html>
发表于:2008-01-23 09:21:297楼 得分:0
这是进入后的jsp页面内容
由于内容过长,删掉了一些javascript函数
有点乱呵
发表于:2008-01-23 13:47:548楼 得分:0
图书出售,
java2核心技术卷i:基础知识(原书第7版)
详细说明:http://product.dangdang.com/product.aspx?product_id=9167161   原价:88

java2核心技术,卷ii:高级特性(原书第7版)
详细说明:http://product.dangdang.com/product.aspx?product_id=9155128   原价:108

java   web开发详解:xml+xslt+servlet+jsp深入剖析与实例应用(附光盘)  
详细说明:http://product.dangdang.com/product.aspx?product_id=9167911   原价:99

effective   java中文版
详细说明:http://product.dangdang.com/product.aspx?product_id=707050   原价:39

java与xslt  
详细说明:http://product.dangdang.com/product.aspx?product_id=725436   原价:55

java网络编程(第3版)——o'reilly   java系列  
详细说明:http://product.dangdang.com/product.aspx?product_id=9062293   原价:85

junit   in   action   中文版——java人的工具箱系列  
详细说明:http://product.dangdang.com/product.aspx?product_id=8935882   原价:39

spring专业开发指南  
详细说明:http://product.dangdang.com/product.aspx?product_id=9202403   原价:80

spring   2.0技术手册(附光盘)
详细说明:http://product.dangdang.com/product.aspx?product_id=9303590   原价:49.8

深入浅出hibernate  
详细说明:http://product.dangdang.com/product.aspx?product_id=8991354   原价:59

struts   2   权威指南:基于webwork核心的mvc开发(附光盘)  
详细说明:http://product.dangdang.com/product.aspx?product_id=20029121&mode=new   原价:79

oracle高级编程  
详细说明:http://product.dangdang.com/product.aspx?product_id=9296670   原价:69

sql   server   2005宝典(附盘)  
详细说明:http://product.dangdang.com/product.aspx?product_id=9247242   原价:79

以上书籍完好无损,均以4.5折出售,如需邮寄,邮费自付。qq:492717188   tel:13450830512   谢谢!
发表于:2008-01-23 13:53:369楼 得分:0
无法解释   如果inportstatisticsdelete.do后面的两个参数去掉其中一个,那么它能正常跳到inportstatisticsinflistpage.do中去.  

不过觉得你这种处理方法不对。
<a       class="delete"       id="deltag"       onclick="reminddel();"       href="inportstatisticsdelete.do?inportfilename=2004国籍统计.xls(2004)&inporttype=2">  

    function       reminddel(){  
        var       isdel       =       confirm("您确定要删除这条信息吗?");  
        if(!isdel){  
        document.getelementbyid("deltag").href="inportstatisticsinflistpage.do?listpagetype=excuterec";(标记一)  
        }  
        }  

问题有两个:
1.在你的页面中,id   为deltag的对象有多个,你这样处理显然是不对的。
2.通常在执行删除时,我们是这样控制:
<a       class="delete"       id="deltag"       onclick="reminddel();"       href="#">  

    function       reminddel(){  
        var       isdel       =       confirm("您确定要删除这条信息吗?");  
        if(isdel){  
        document.getelementbyid("deltag").href="inportstatisticsdelete.do?inportfilename=2004国籍统计.xls(2004)&inporttype=2";
        }  
        }  

针对你这种情况,建议:

<a       class="delete"       id="deltag1"       onclick="reminddel(1,'2004国籍统计.xls(2004)','2');"       href="#">  

    function       reminddel(   i,name,type){  
        var       isdel       =       confirm("您确定要删除这条信息吗?");  
        if(isdel){  
        document.getelementbyid("deltag"   +   i   ).href="inportstatisticsdelete.do?inportfilename="+   name+"&inporttype="+type;
        }  
        }  

发表于:2008-01-23 23:14:5310楼 得分:0
楼上的想法是对的
可我怎么实现“deltag"       +       i  
于是我换了如下方法:
                function     reminddel(aaa){      
                    var   isdel   =   confirm("您确定要删除这条信息吗?");      
                    if(isdel){
                        alert(aaa);      
                        document.getelementbyid(aaa).click();  
                        alert(document.getelementbyid(aaa).id);  
                }else{
                      return;
                }  
<td>
<a   class="delete"   onclick="reminddel(' <bean:write   name="inportfromexcel"   property="inportEXECutetime"/>   ')">
</a>
<a   id=" <bean:write   name="inportfromexcel"   property="inportEXECutetime"/>   "   style="display:none"   href="...">
</a>
</td>

也就是说我以inportEXECutetime来做id值,代替楼上的i序列,可这样触发不了 <a> ,就是不跳转,函数里的alert都是正常的(值也一样).
当我把两个 <bean:write> 换成常量时,就能触发 <a> 使页面跳转,但这样就出现了如ls说的第一个问题.

所以我想问题就出现在javascript,html和struts标签之间的影响上,可出现在哪呢?

这个问题看似简单却整了我快两天了,可急死我了




快速检索

最新资讯
热门点击