首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

无法 将一个隐藏域 的对象传入 脚本函数.要晕了

2012-03-07 
无法 将一个隐藏域 的对象传入 脚本函数............要晕了 - Web 开发 / Ajax这个是我在 JSP 里写的 代码

无法 将一个隐藏域 的对象传入 脚本函数............要晕了 - Web 开发 / Ajax
这个是我在 JSP 里写的 代码

Java code
  out.print("<input type='hidden' value='发件人' id='MsgfromID' name='Msgfrom' />");  out.print("<input type='hidden' value='收件人' id='MsgtoID' name='Msgto' />");  out.print("<table border='0' width='100%'");  out.print("<tr>");  out.print("<td align='left'>信件内容</td>");  out.print("</tr>");  out.print("<div id='msgControlDIV'><tr>");    out.print("<td bgcolor='CCCCFF' align='left'><a href='javascript:sendAJAX_SendMessageForRe(1,2,MsgfromID,MsgtoID,msgControlDIV),void(0)'>回复</a></td>");//当我点击回复的时候 居然说找不到 MsgfromID这个   out.print("<td><input type='button' value='text' onclick='alert(MsgfromID.value)' /></td>");//但是 点这里的测试按钮 是可以得到 这个隐藏域的值的.....................为什么呢????  out.print("</tr></div>");  out.print("</table>");





求 前辈解答 ,着急.............

[解决办法]
理论上IE是可以. 标准做法是 document.getElementById('MsgfromID')..
另: 查询一下,生成HTML页面里 ID 为 MsgfromID 的 element 是否有多个? 也就是ID不唯一.
[解决办法]
应该同楼上说的,你的html里存在多个id一样的控件

你上面的java代码应该是放在了显示数据的循环里面

生成了多个id一样的<input type='hidden' value='发件人' id='MsgfromID' name='Msgfrom' />
[解决办法]
out.print("<td bgcolor='CCCCFF' align='left'><a href='javascript:sendAJAX_SendMessageForRe(" + mif.getMsgfromid() + "," + mif.getMsgtoid() + ",msgControlDIV),void(0)'>回复</a></td>");


===你的代码上下不一样的?????????上面的代码是不是少了MsgfromID,MsgtoID?

out.print("<td bgcolor='CCCCFF' align='left'><a href='javascript:sendAJAX_SendMessageForRe(1,2,MsgfromID,MsgtoID,msgControlDIV),void(0)'>回复</a></td>");

[解决办法]
先不管原因``
解决方案:
点回复先调另一个JS函数(getValue())来过渡,在这个JS函数中,用document.getElementById()这个方法取得隐藏域中的值,再将取得的值传入你的AJAX函数中
[解决办法]
out.print("<td bgcolor='CCCCFF' align='left'><a href='javascript:sendAJAX_SendMessageForRe('" + mif.getMsgfromid() + "','" + mif.getMsgtoid() + "'[color=#FF0000][/color],msgControlDIV),void(0)'>回复</a></td>");
如果那个方法要的是字符串的话
[解决办法]
也就是要加上引号才可以,如果你的那个send......方法接收的是字符串的话

[解决办法]
你这样吧:
将out.print(" <td bgcolor='CCCCFF' align='left'> <a href='javascript:sendAJAX_SendMessageForRe('" + mif.getMsgfromid() + "','" + mif.getMsgtoid() + "',msgControlDIV),void(0)'>回复 </a> </td>"); 
改成:
out.print(" <td bgcolor='CCCCFF' align='left'> <a href='javascript:send1('" + mif.getMsgfromid() + "','" + mif.getMsgtoid() + "'),void(0)'>回复 </a> </td>"); 

你在上面写一个Javascript方法:
<script>
function send1(mag1,msg2){
sendAJAX_SendMessageForRe(mag1,msg2,document.getElementById("msgControlDIV"));

}
</script>
------解决方案--------------------


也就是说直接写msgControlDIV是不行的.用不着document.getElementById("msgControlDIV");就可以得到msgControlDIV对象,你就可以对这个DIV对象进行操作了。如得到这个DIV的子元素等等。。。。。

热点排行