随笔 - 1330  文章 - 1  评论 - 378  阅读 - 482万 

一、 提交 重置 时的注意项
先看如下代码:

 

复制代码
<form id="addtag" name="addtag" action="/ns/ur/maddtag.do" method="post"
onsubmit
="return validate();">
<table width="100%" border="0" cellpadding="4" cellspacing="0" class="l_table_p" >
<tr>
<td bgcolor="#DBF9DF">&nbsp;</td>
<td bgcolor="#DBF9DF" align="right">名  称:</td>
<td colspan="3" bgcolor="#DBF9DF"><input type="text" name="tagname" id="tagname" style="
width:150px;"

maxlength
="10"/></td>
</tr>
<tr>
<td colspan="5" bgcolor="#DBF9DF">
<label>
<input type="submit" value="添加" class="btn_c3"/> 
<input type="reset" value="重置" class="btn_c3"/>
</label>
</td>
</tr>
</table>
</form>
复制代码

以上就是一个表单, 请注意 重置的部分演示地址:http://你的IP/dev/err_case/2.jsp
问题: 在FF下,重置也会交表单, 解决办法: 去掉<label>
 ---------------------------------------------------------------------------------------------------------------------------------------------
二、IE6 onclick事件 要加 return false

$PF(this).submit() 的作用是提交表单

<href="javascript:;"  onclick="$PF(this).submit();"> 提交</a>

我们想单击超链接,来提交表 ,  IE7FF下都正常, 但在IE6, 不能提交表单
要加return false , 如下 

<href="javascript:;"  onclick="$PF(this).submit();"> 提交</a>
----------------------------------------------------------------------------------------------------------------------------------------------

, 关于节点类型 在说一说
万维网联盟(W3C)定义HTML DOM 标准节点有以下几种 ()

 

 

ELEMENT_NODE 
1
元素节点
ATTRIBUTE_NODE    
2
属性节点
TEXT_NODE  
3
文本节点

 

IEFF 以上节点的 "理解" 有差异,如比我们写js :  对象.nextSibling   ,  来取得对象的下一个兄弟节点,
IE,只会取ELEMENT_NODE (元素节点), 忽略其它类型节点.     FF会取得上面各种类型节点.

:

<table>
  <tr id="nst"><td></td></tr>(这里有换行,就是一个文本节点)
  <tr><td></td></tr>
</table>
\-------------------------------------\-
<js>
var o=$('nst');
var next=o.nextSibling;
</js>
\--------------------------------------\-

结果:
IE:next 是元素节点 (第二个<tr>)
FF:next 是文本节点 (那个换行)
 

解决办法: 在base.js中有如下方法:  通过判断 nodeType == 1  来解决问题
// 获得下一个元素对象(nodeType=1)
function $NE(e)
{
	e = e.nextSibling;
	while (e && e.nodeType != 1){e = e.nextSibling;}
	return e;
}
// 获得第一个元素对象(nodeType=1)
function $FE(e)
{
	e = e.firstChild;
	while (e && e.nodeType != 1){e = e.nextSibling;}
	return e;
}


----------------------------------------------------------------------------------------------------------------------------------------------

四, 不正确的隐藏table中的行

想通过隐藏DIV来实现不显示" ;第一行" , 是不行的

<table width="922" border="0" cellspacing="0" cellpadding="0">
<div style="display:none">
  <tr>
    <td>&nbsp;第一行</td>
  </tr>
</div>
  <tr>
    <td>&nbsp;第二行</td>
  </tr>
</table>
转自:http://elf8848.javaeye.com/blog/289461
posted on   钱途无梁  阅读(261)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示