onchange(this)在jsp里,怎么把这个this传到另1个js文件里去?

charlesxu 2012-12-03 05:47:49
jsp里的js代码如下:


<script type="text/javascript" src="js/FirewallConf/Add_plan.js"></script>
<body>
<select id="comb_res_addr" style="width:100px;" onchange="onchange_addr(this)">
<option value="res_addr">源</option>
<option value="res_addr_domain">源段</option>
</select>
<input type="text" style="width:100px;" id='txt_res_ip1' value="">
<input type="text" style="width:100px;" id='txt_res_ip2' value="">
</body>


Add_plan.js的代码如下:

function onchange_addr(obj){
if($(obj).val() == "res_addr")
$(obj).siblings("input[id=txt_res_ip2]").attr("disabled","true");
}


现在onchange函数我放到了Add_plan.js里,当在jsp里点击select选择其他值时,报找不到对象,也就是说找不到那个this。

请问怎么把html里的this,传到另一个js里?
...全文
362 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
charlesxu 2012-12-04
  • 打赏
  • 举报
回复
楼上2位都是高手,我把onchange_conf放到$(document).ready(function()外面就行了。放到里面是不是就只在页面加载时执行,加载后就没有了。所以找不到onchange_conf这个对象了。
suciver 2012-12-04
  • 打赏
  • 举报
回复
看清楚下js的文件都引入了吗。地址都正确了吗。代码是没有问题的
frog8659 2012-12-04
  • 打赏
  • 举报
回复
~~缺少对象不会是指没有onchange_addr这个方法吧。。。 js路径没错??? 你试着在js文件里写个 $(document).ready(function() { alert(1) }); 看会不会有alert啊~
charlesxu 2012-12-04
  • 打赏
  • 举报
回复
我是在IE的开发人员工具里(按F12)里看到的,控制台报的jsp页面上<select id="comb_res_addr" style="width:100px;" onchange="onchange_addr(this)">这一行缺少对象。 这行里的对象就一个this,而且js和jsp放一起时没问题的。所以我怀疑是jsp调用js里的onchange_addr函数时,函数的参数不认this这个对象。
frog8659 2012-12-04
  • 打赏
  • 举报
回复
报找不到对象???具体怎么报出来的能贴出来看看么? 因为就算obj是undefined,对$(obj)操作也不会报错的。
charlesxu 2012-12-04
  • 打赏
  • 举报
回复
又试了一遍,把js里的代码原封不动放回jsp里就没问题了。 那么jsp里<select id="comb_res_addr" style="width:100px;" onchange="onchange_addr(this)">这句话里面的this,怎么传给js里面的onchange_addr(obj)函数呢? 注:如果把js和jsp放一起是可以传this的,分开就不行了
xingfuzhuzi1314 2012-12-04
  • 打赏
  • 举报
回复
引用 2 楼 charlesxu 的回复:
我之前把javascript放在jsp里时,就用的$(obj),没问题。 现在把js代码单独拿出来,jsp里的onchange(this)就报找不到对象了。说明this这个jsp里的对象没传给js里的onchange函数
+1, 我反正是这样写的,LZ!
charlesxu 2012-12-04
  • 打赏
  • 举报
回复
我之前把javascript放在jsp里时,就用的$(obj),没问题。 现在把js代码单独拿出来,jsp里的onchange(this)就报找不到对象了。说明this这个jsp里的对象没传给js里的onchange函数
jiaping108 2012-12-04
  • 打赏
  • 举报
回复
就这么传,只是你JS里的写的有问题.obj是个对象,$(obj)这是个什么东西?jQuery没这功能...

function onchange_addr(obj){ 
  if(obj.value == "res_addr"){
     alert('可以取到值'); 
  }
} 
或者你非得一定想传this,一定要这么写

function onchange_addr(obj){ 
  var objId = obj.id;
  if($(#objId).val() == "res_addr"){
    $(#objId).siblings("input[id=txt_res_ip2]").attr("disabled","true"); } 
  }

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧