innerHTML中表单值不刷新在IE和火狐以及在在火狐当中outerHTML的解决方法
2010-07-01 19:08
447 查看
最近在做网站,由于不同类型的产品的参数不同,所以就用起将这些参数放到同一个字段中去(实在找不到其他的解决办法了,如果要为每个参数都建个字段,那产品表至少有200~300个字段)。页面上的解决办法是:将这些参数做成表格(里面有相应的表单),放到“产品类型”表中去。当添加这个产品时,根据用户选择的产品类型,调出不同的表格。所以在添加产品的时候,需要将这些表格显示到一个DIV中,提交的时候,使用javascript将这个div赋值给一个隐藏的表单,最后一起提交给数据库。
如下:
代码
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<FORM name="form1" method="post" action="1.asp">
<div id="aaa">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>ddd</td>
<td><input name="textfield" type="text" id="textfield" size="10" /></td>
</tr>
<tr>
<td>ddd1</td>
<td><input name="textfield2" type="text" id="textfield2" size="10" /></td>
</tr>
<tr>
<td>eee</td>
<td><input name="textfield3" type="text" id="textfield3" size="10" /></td>
</tr>
</table>
</div>
</FORM>
<script language="javascript" src="http://www.aspprogram.cn/js/jquery.js"></script>
<script>
$("input").blur(function(){
this.setAttribute('value',this.value);
});
</script>
<script language="javascript">
function f()
{
document.getElementById("a").value=document.getElementById("aaa").innerHTML;
}
</script>
<input type="button" name="button" id="button" value="提交" onClick="f()" />
<br />
<textarea name="a" cols="40" rows="5" id="a"></textarea>
再运行一下这段代码看看,是不是解决了?最后提交到数据库中的方法,写到action中的1.asp就可以了
原创文章:转载请注明来自:http://www.aspprogram.cn/ ,谢谢
2. 在火狐当中outerHTML的解决办法:
直接把以下段码插入到head当中
<!--
if(typeof(HTMLElement)!="undefined" && !window.opera)
{
HTMLElement.prototype.__defineGetter__("outerHTML",function()
{
var a=this.attributes, str="<"+this.tagName, i=0;for(;i<a.length;i++)
if(a[i].specified) str+=" "+a[i].name+'="'+a[i].value+'"';
if(!this.canHaveChildren) return str+" />";
return str+">"+this.innerHTML+"</"+this.tagName+">";
});
HTMLElement.prototype.__defineSetter__("outerHTML",function(s)
{
var d = document.createElement("DIV"); d.innerHTML = s;
for(var i=0; i<d.childNodes.length; i++)
this.parentNode.insertBefore(d.childNodes[i], this);
this.parentNode.removeChild(this);
});
HTMLElement.prototype.__defineGetter__("canHaveChildren",function()
{
return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());
});
}
//-->
如下:
代码
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<FORM name="form1" method="post" action="1.asp">
<div id="aaa">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>ddd</td>
<td><input name="textfield" type="text" id="textfield" size="10" /></td>
</tr>
<tr>
<td>ddd1</td>
<td><input name="textfield2" type="text" id="textfield2" size="10" /></td>
</tr>
<tr>
<td>eee</td>
<td><input name="textfield3" type="text" id="textfield3" size="10" /></td>
</tr>
</table>
</div>
</FORM>
<script language="javascript" src="http://www.aspprogram.cn/js/jquery.js"></script>
<script>
$("input").blur(function(){
this.setAttribute('value',this.value);
});
</script>
<script language="javascript">
function f()
{
document.getElementById("a").value=document.getElementById("aaa").innerHTML;
}
</script>
<input type="button" name="button" id="button" value="提交" onClick="f()" />
<br />
<textarea name="a" cols="40" rows="5" id="a"></textarea>
再运行一下这段代码看看,是不是解决了?最后提交到数据库中的方法,写到action中的1.asp就可以了
原创文章:转载请注明来自:http://www.aspprogram.cn/ ,谢谢
2. 在火狐当中outerHTML的解决办法:
直接把以下段码插入到head当中
<!--
if(typeof(HTMLElement)!="undefined" && !window.opera)
{
HTMLElement.prototype.__defineGetter__("outerHTML",function()
{
var a=this.attributes, str="<"+this.tagName, i=0;for(;i<a.length;i++)
if(a[i].specified) str+=" "+a[i].name+'="'+a[i].value+'"';
if(!this.canHaveChildren) return str+" />";
return str+">"+this.innerHTML+"</"+this.tagName+">";
});
HTMLElement.prototype.__defineSetter__("outerHTML",function(s)
{
var d = document.createElement("DIV"); d.innerHTML = s;
for(var i=0; i<d.childNodes.length; i++)
this.parentNode.insertBefore(d.childNodes[i], this);
this.parentNode.removeChild(this);
});
HTMLElement.prototype.__defineGetter__("canHaveChildren",function()
{
return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());
});
}
//-->
相关文章推荐
- 火狐与IE DIV高度自适应解决方法以及背景颜色自适应
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
- 兼容解决 IE 、火狐、谷歌浏览器中 Iframe框架的页面缓存的方法
- 关于iframe 局部刷新 全部刷新 的解决办法以及嵌套 嵌套html页面
- Win开发当中遇到的各种error以及解决方法
- Android开发当中遇到的各种error以及解决方法
- 前端使用Jquery的getJSON方法,后台使用PHP,解决IE和火狐Firefox中存在的跨域ajax请求问题。
- IE中页面无法刷新,方法不执行的解决办法
- IE图标消失 HTML文件图标变为未知图标的解决方法
- 解决火狐与IE空格宽度不一致的方法:style="font-family: '宋体', Simsun;"
- IE7下验证码不刷新的奇怪解决方法
- 关于验证码在IE中不刷新的快速解决方法
- 火狐下,表单无法刷新重置问题的分析与解决 .
- 【JSP页面表单提交,controller接收为乱码,以及保存到数据库时为乱码】解决方法
- IE9下Ajax无法刷新数据的缓存问题解决方法
- 使用Django Form解决表单数据无法动态刷新的两种方法
- window.onload兼容ie和ff以及多次调用导致相冲突的解决方法
- 在编程过程中需要注意的火狐和IE兼容性问题和解决方法
- Django—Form两种解决表单数据无法动态刷新的方法