论坛首页 Web前端技术论坛

jsp中调用js中的一个函数,函数传参的问题

浏览 3182 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-12-13  
看本帖只需要你有js基础就可以了!
今天用jsp+servlet+js实现一个删除的功能,结果遇到了一个问题
问题如下:
     <pre name="code" class="java">onclick="deleteOne(&lt;%=message.getTitleId() %&gt;)"</pre>其中&lt;%=message.getTitleId() %&gt;是jsp动态地去取值,不懂得可以将其看成是一个变量;
     <pre name="code" class="java">function deleteOne(titleId){
var r=confirm("确认删除?");
if(r == true){
document.main.ck_value.value=titleId;
document.main.action="deleteServlet";
document.main.submit();
}
};</pre>
问题是deleteOne函数如果没参数,或者指定成整数,那么deleteOne(注意对应调用,无参的时候调用无参deleteOne,有参数的时候调用有参deleteOne)能正常被调用,但是如果参数不是整数,而是字符串(我们也确实传的是字符串),那么问题就来了,deleteOne函数没被调用
后来我查看编译后的页面源代码,如下
    <pre name="code" class="java">&lt;a href="javascript:void(0)" onclick="deleteOne(OMG80)"&gt;删除&lt;/a&gt;</pre>
可以看到deleteOne(OMG80),仔细看,请问deleteOne函数的参数是什么?
是整数吗,显然不是;那么是字符串吗,也不是,字符串需要""或者'',所以问题找到,我们读不懂参数类型,机器更读不懂,所以它不知所措,那么理所当然的deleteOne函数没被调用

最后附上项目源码,有分页,有查询功能
如何解决了?
      <pre name="code" class="java">onclick="deleteOne('&lt;%=message.getTitleId() %&gt;')"</pre>加上引号就可以了
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics