firefox input onclick无效,求解决

aspirin8086 2010-04-07 07:57:28
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
{include file="pageheader.htm"} <!-- 控制页面的CSS样式-->
</head>

<body>
<form method="post" action="alertconfig.php" name="theForm" enctype="multipart/form-data" onsubmit="return validate()">
<table name='tbl' id="tbl" width="587" border="1">
<tr>
<td colspan="3">预警消息发送设置</td>
</tr>
{foreach from=$sys_info[ds_alertconfig_message] item=message}
<tr>
<td width="187">
<label>
<input type="checkbox" name="message_check{$message.target}" value=1 {if $message.active =="1"}checked="checked" {/if}/>
</label>
是否短信预警
</td>
<td width="140">手机号</td>
<td width="238">
<label>
<input type="text" name="message{$message.target}" id="message{$message.target}" value="{$message.target}"/>
</label>
<input type='button' value='删除' onclick='deleteRow(this)'>
<div id="message"></div>
</td>
</tr>
   {/foreach}

{foreach from=$sys_info[ds_alertconfig_mail] item=mail}
<tr>
<td width="187" colspan="1">
<label>
<input type="checkbox" name="mail_check{$mail.target}" value=0 {if $mail.active =="1"}checked="checked" {/if} />
</label>
是否邮件预警
</td>
<td width="198">邮件地址</td>
<td width="238">
<label>
<input type="text" name="mail{$mail.target}" id="mail{$mail.target}" value="{$mail.target}"/>
</label>
<input type='button' value='删除' onclick='deleteRow(this)'>
<div id="mail"></div>
</td>
</tr>
{/foreach}
</table>

<br />
<input type="button" value="增加短信" onclick="insert_row('message')">
<input type="button" value="增加邮件" onclick="insert_row('mail')">
<br />
<br />
<table>
<tr>
<td colspan="3">页面刷新设置</td>
</tr>
<tr>
<td>
<label>
<br />
<input type="checkbox" name="aaa2" id="aaa2" />
</label>
是否实时刷新日志
</td>
<td>刷新时间隔(秒)</td>
<td><input type="text" name="test2" id="test2" /></td>
</tr>
<tr>
<td><p><input type="checkbox" name="aaa3" id="aaa3" />是否实时刷新用户行为</p></td>
<td>刷新时间隔(秒)</td>
<td><input type="text" name="test3" id="test3" /></td>
</tr>
<tr>
<td colspan="2" align="center"><br />
<input type="submit" class="button" value="{$lang.button_submit}" />
<input type="reset" class="button" value="{$lang.button_reset}" />
<input type="hidden" name="act" value="{$form_action}" />
<input type="hidden" name="id" value="{$user.id}" />
</td>
</tr>
</table>
</form>


{insert_scripts files="../js/utils.js,validator.js"}
{include file="pagefooter.htm"}

<script>
var i=0
function insert_row(type){
i ++
tbl=document.getElementById("tbl");

R = tbl.insertRow()
C = R.insertCell()
if (type == 'message') {
C.innerHTML = "<input type='checkbox' name='message_check"+ i + "' value=0 checked='checked' />是否短信预警"
}
else {
C.innerHTML = "<input type='checkbox' name='mail_check" + i + "' value=0 checked='checked' />是否邮件预警"
}
C = R.insertCell()
if (type == 'message') {
C.innerHTML = "手机号"
}
else {
C.innerHTML = "邮件地址"
}
C = R.insertCell()
C.innerHTML = "<input type='text' name = '" + type + i + "' id = '" + type + i + "' value = " + type + i + "> <input type='button' value='删除' onclick='deleteRow(this)'>"
}
function deleteRow(obj){
tbl.deleteRow(obj.parentElement.parentElement.rowIndex);
}
</script>
</body>
</html>


这段代码中,两个按钮的onclick在IE中正常,在firefox中失效,求解决方案。
...全文
909 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
猪猪猪爱的 2010-04-09
  • 打赏
  • 举报
回复
使用jQuery就可以做兼容了 使用parent()属性找 FF下onclick方法应该是click的 命名不一样
oxcow 2010-04-07
  • 打赏
  • 举报
回复
parentElement在ie中不支持,建议均换成parentNode。parentNode是标准的DOM语法,可以参考下http://www.w3school.com.cn/htmldom/dom_nodes_access.asp
oxcow 2010-04-07
  • 打赏
  • 举报
回复

function insert_row(type){
i ++
tbl=document.getElementById("tbl");
.....
}
function deleteRow(obj){
tbl.deleteRow(obj.parentElement.parentElement.rowIndex);
}


firefox中deleteRow 函数 tbl没有定义 因此需要将insert_row()中的tbl=document.getElementById("tbl");移到最外面
同时firefox中obj.parentElement.parentElement.rowIndex应为obj.parentNode.parentNode.rowIndex

那么改动后为:

tbl=document.getElementById("tbl");
function insert_row(type){
i ++

.....
}
function deleteRow(obj){
tbl.deleteRow(obj.parentElement.parentElement.rowIndex);
}

snowhite88 2010-04-07
  • 打赏
  • 举报
回复
加个分号试试.
真哥哥 2010-04-07
  • 打赏
  • 举报
回复
错误控制台报什么错呢

87,907

社区成员

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

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