查看:执行效果 请访问网址:http://chinafeihu.gicp.net/
http://chinafeihu.gicp.net/
源代码如下:
------------------------------------------------------------------------------------------------------
<!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=gb2312" />
<title>我有问题,请大家帮助,不胜感激</title>
</head>
<body>
<p>
<pre>
/*
感谢您查看我的问题,相信你我都有收获!
功能与问题描述:
这是一个添加 删除行的操作,大家可以根据实际需要稍作修改就能用在页面上了。
在 用户名 的文本框失去焦点后,触发函数。
页面上已经放置好的元素可以正常的触发函数(前三行),
但新增加的行,却无法触发函数,该如何修改能够让它正常触发函数,并且在函数中可以使用document.getElementById("xxx")获取页面上的元素.
(说明:如果修改一下方法调用,新增加的行也能够触发函数的,但使用document.getEelementById获取不到页面上的元素,这个问题怎么办?)
*/
</pre>
</p>
<table>
<tr >
<td align="center" >
<div>
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh00_jh" onBlur="getQzh('qzh00')"/> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh00"/></span>
|
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh01_jh" onBlur="getQzh('qzh01')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh01" /></span>
</div>
<div>
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh1_jh" onBlur="getQzh('qzh1')"/> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh1"/></span>
|
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh2_jh" onBlur="getQzh('qzh2')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh2" /></span>
</div>
<div id="syr_div">
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh3_jh" onBlur="getQzh('qzh3')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh3"/></span>
|
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh4_jh" onBlur="getQzh('qzh4')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh4"/></span>
</div>
<div id="czrow" style=" margin-top:10px">
<input type="button" name="zjyh" value="增加一行" onClick="addRow();"> <input name="scyh" type="button" value="删除一行" onClick="romoveRow();">
</div>
</td>
</tr>
</table>
<p>
源代码请右键查看源文件
</p></body>
</html>
<SCRIPT language="javascript">
/*
js动态添加表单后,在触发函数中使用document.getElementById获取页面上原有对象的问题
查看:执行效果 请访问网址:http://chinafeihu.gicp.net/
功能与问题描述:
这是一个添加 删除行的操作,大家可以根据实际需要稍作修改就能用在页面上了。
在 用户名 的文本框失去焦点后,触发函数。
页面上的元素可以正常的触发函数,
但新增加的行,却无法触发函数,该如何修改能够让它正常触发函数,并且在函数中可以使用document.getElementById("xxx")获取页面上的元素.
(说明:如果修改一下方法调用,新增加的行也能够触发函数的,但使用document.getEelementById获取不到页面上的元素,这个问题怎么办?)
*/
var id_num1=3;
var id_num2=4;
function addRow()
{
var syr_div = document.getElementById("syr_div");
var czrow_div = document.getElementById("czrow");
var copy_div = syr_div.cloneNode(true); //拷贝行 id_num1+=2;
id_num2+=2;
var qzh1="qzh" + id_num1;
var qzh2="qzh" + id_num2;//修改第一个span标签中的元素属性
copy_div.firstChild.childNodes.item(1).value="";
copy_div.firstChild.childNodes.item(1).id=id_num1 + "_jh";
//修改第一个span标签中的身份证input框id属性
copy_div.firstChild.lastChild.id=qzh1;
copy_div.firstChild.lastChild.value="";
//修改第一个span标签中的用户名input框onblur属性
copy_div.firstChild.childNodes.item(1).onblur="getQzh('"+ qzh1 +"');";
//修改第二个span标签中的属性
copy_div.childNodes.item(2).childNodes.item(1).value="";
copy_div.childNodes.item(2).childNodes.item(1).id=id_num2 + "_jh";
//修改第二个span标签中的身份证input框id属性
copy_div.childNodes.item(2).lastChild.id=qzh2;
copy_div.childNodes.item(2).lastChild.value="";
//修改第二个span标签中的用户名input框onblur属性
copy_div.childNodes.item(2).childNodes.item(1).onblur="getQzh('"+ qzh2 +"');";
syr_div.parentNode.insertBefore(copy_div,czrow_div); //将拷贝的行添加到 按钮前面}
function romoveRow()
{
var syr_div = document.getElementById("syr_div");
if(syr_div.parentNode.lastChild.previousSibling != syr_div)
{
syr_div.parentNode.removeChild(syr_div.parentNode.lastChild.previousSibling);
}else
{
alert("不能再删除了!");
}
}
function getQzh(fieldId)
{
var jh_input = document.getElementById(fieldId+"_jh");
var yhm=jh_input.value;
//alert(jh_input.value);
alert(jh_input); //这里验证是否获取到了页面上的元素,输出[object]证明获取到了,输出null是没获取到
alert("哈哈俣!");
}
</SCRIPT>
http://chinafeihu.gicp.net/
源代码如下:
------------------------------------------------------------------------------------------------------
<!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=gb2312" />
<title>我有问题,请大家帮助,不胜感激</title>
</head>
<body>
<p>
<pre>
/*
感谢您查看我的问题,相信你我都有收获!
功能与问题描述:
这是一个添加 删除行的操作,大家可以根据实际需要稍作修改就能用在页面上了。
在 用户名 的文本框失去焦点后,触发函数。
页面上已经放置好的元素可以正常的触发函数(前三行),
但新增加的行,却无法触发函数,该如何修改能够让它正常触发函数,并且在函数中可以使用document.getElementById("xxx")获取页面上的元素.
(说明:如果修改一下方法调用,新增加的行也能够触发函数的,但使用document.getEelementById获取不到页面上的元素,这个问题怎么办?)
*/
</pre>
</p>
<table>
<tr >
<td align="center" >
<div>
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh00_jh" onBlur="getQzh('qzh00')"/> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh00"/></span>
|
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh01_jh" onBlur="getQzh('qzh01')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh01" /></span>
</div>
<div>
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh1_jh" onBlur="getQzh('qzh1')"/> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh1"/></span>
|
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh2_jh" onBlur="getQzh('qzh2')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh2" /></span>
</div>
<div id="syr_div">
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh3_jh" onBlur="getQzh('qzh3')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh3"/></span>
|
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh4_jh" onBlur="getQzh('qzh4')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh4"/></span>
</div>
<div id="czrow" style=" margin-top:10px">
<input type="button" name="zjyh" value="增加一行" onClick="addRow();"> <input name="scyh" type="button" value="删除一行" onClick="romoveRow();">
</div>
</td>
</tr>
</table>
<p>
源代码请右键查看源文件
</p></body>
</html>
<SCRIPT language="javascript">
/*
js动态添加表单后,在触发函数中使用document.getElementById获取页面上原有对象的问题
查看:执行效果 请访问网址:http://chinafeihu.gicp.net/
功能与问题描述:
这是一个添加 删除行的操作,大家可以根据实际需要稍作修改就能用在页面上了。
在 用户名 的文本框失去焦点后,触发函数。
页面上的元素可以正常的触发函数,
但新增加的行,却无法触发函数,该如何修改能够让它正常触发函数,并且在函数中可以使用document.getElementById("xxx")获取页面上的元素.
(说明:如果修改一下方法调用,新增加的行也能够触发函数的,但使用document.getEelementById获取不到页面上的元素,这个问题怎么办?)
*/
var id_num1=3;
var id_num2=4;
function addRow()
{
var syr_div = document.getElementById("syr_div");
var czrow_div = document.getElementById("czrow");
var copy_div = syr_div.cloneNode(true); //拷贝行 id_num1+=2;
id_num2+=2;
var qzh1="qzh" + id_num1;
var qzh2="qzh" + id_num2;//修改第一个span标签中的元素属性
copy_div.firstChild.childNodes.item(1).value="";
copy_div.firstChild.childNodes.item(1).id=id_num1 + "_jh";
//修改第一个span标签中的身份证input框id属性
copy_div.firstChild.lastChild.id=qzh1;
copy_div.firstChild.lastChild.value="";
//修改第一个span标签中的用户名input框onblur属性
copy_div.firstChild.childNodes.item(1).onblur="getQzh('"+ qzh1 +"');";
//修改第二个span标签中的属性
copy_div.childNodes.item(2).childNodes.item(1).value="";
copy_div.childNodes.item(2).childNodes.item(1).id=id_num2 + "_jh";
//修改第二个span标签中的身份证input框id属性
copy_div.childNodes.item(2).lastChild.id=qzh2;
copy_div.childNodes.item(2).lastChild.value="";
//修改第二个span标签中的用户名input框onblur属性
copy_div.childNodes.item(2).childNodes.item(1).onblur="getQzh('"+ qzh2 +"');";
syr_div.parentNode.insertBefore(copy_div,czrow_div); //将拷贝的行添加到 按钮前面}
function romoveRow()
{
var syr_div = document.getElementById("syr_div");
if(syr_div.parentNode.lastChild.previousSibling != syr_div)
{
syr_div.parentNode.removeChild(syr_div.parentNode.lastChild.previousSibling);
}else
{
alert("不能再删除了!");
}
}
function getQzh(fieldId)
{
var jh_input = document.getElementById(fieldId+"_jh");
var yhm=jh_input.value;
//alert(jh_input.value);
alert(jh_input); //这里验证是否获取到了页面上的元素,输出[object]证明获取到了,输出null是没获取到
alert("哈哈俣!");
}
</SCRIPT>
问题在此...
onblur是事件,对应设置应该是函数.
你设置的是字符串..
设置成copy_div.childNodes.item(2).childNodes.item(1).onblur=function test(){alert("一哈哈");};
这样设置是可以触发,但再加一句copy_div.childNodes.item(2).childNodes.item(1).onblur=function test(){alert("一哈哈");
alert(document.getElementById("qzh3_jh"))};//这样获取不到这个input text对象,如何能获取到?
<!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=gb2312" />
<title>我有问题,请大家帮助,不胜感激</title>
</head>
<body>
<p>
<pre>
/*
感谢您查看我的问题,相信你我都有收获!
功能与问题描述:
这是一个添加 删除行的操作,大家可以根据实际需要稍作修改就能用在页面上了。
在 用户名 的文本框失去焦点后,触发函数。
页面上已经放置好的元素可以正常的触发函数(前三行),
但新增加的行,却无法触发函数,该如何修改能够让它正常触发函数,并且在函数中可以使用document.getElementById("xxx")获取页面上的元素.
(说明:如果修改一下方法调用,新增加的行也能够触发函数的,但使用document.getEelementById获取不到页面上的元素,这个问题怎么办?)
*/
</pre>
</p>
<table>
<tr >
<td align="center" >
<div>
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh00_jh" onBlur="getQzh('qzh00')"/> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh00"/></span>
|
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh01_jh" onBlur="getQzh('qzh01')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh01" /></span>
</div>
<div>
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh1_jh" onBlur="getQzh('qzh1')"/> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh1"/></span>
|
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh2_jh" onBlur="getQzh('qzh2')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh2" /></span>
</div>
<div id="syr_div">
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh3_jh" onBlur="getQzh('qzh3')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh3"/></span>
|
<span>用户名:<input name="jh" type="text" size="6" value="" id="qzh4_jh" onBlur="getQzh('qzh4')" /> 身份证:<input name="qzh" type="text" size="15" value="" id="qzh4"/></span>
</div>
<div id="czrow" style=" margin-top:10px">
<input type="button" name="zjyh" value="增加一行" onClick="addRow();"> <input name="scyh" type="button" value="删除一行" onClick="romoveRow();">
</div>
</td>
</tr>
</table>
<p>
源代码请右键查看源文件
</p></body>
</html>
<SCRIPT language="javascript">
/*
js动态添加表单后,在触发函数中使用document.getElementById获取页面上原有对象的问题
查看:执行效果 请访问网址:http://chinafeihu.gicp.net/
功能与问题描述:
这是一个添加 删除行的操作,大家可以根据实际需要稍作修改就能用在页面上了。
在 用户名 的文本框失去焦点后,触发函数。
页面上的元素可以正常的触发函数,
但新增加的行,却无法触发函数,该如何修改能够让它正常触发函数,并且在函数中可以使用document.getElementById("xxx")获取页面上的元素.
(说明:如果修改一下方法调用,新增加的行也能够触发函数的,但使用document.getEelementById获取不到页面上的元素,这个问题怎么办?)
*/
var id_num1=3;
var id_num2=4;
function addRow()
{
var syr_div = document.getElementById("syr_div");
var czrow_div = document.getElementById("czrow");
var copy_div = syr_div.cloneNode(true); //拷贝行 id_num1+=2;
id_num2+=2;
var qzh1="qzh" + id_num1;
var qzh2="qzh" + id_num2;//修改第一个span标签中的元素属性
copy_div.firstChild.childNodes.item(1).value="";
copy_div.firstChild.childNodes.item(1).id=id_num1 + "_jh";
//修改第一个span标签中的身份证input框id属性
copy_div.firstChild.lastChild.id=qzh1;
copy_div.firstChild.lastChild.value="";
//修改第一个span标签中的用户名input框onblur属性
copy_div.firstChild.childNodes.item(1).onblur=getQzh;
//修改第二个span标签中的属性
copy_div.childNodes.item(2).childNodes.item(1).value="";
copy_div.childNodes.item(2).childNodes.item(1).id=id_num2 + "_jh";
//修改第二个span标签中的身份证input框id属性
copy_div.childNodes.item(2).lastChild.id=qzh2;
copy_div.childNodes.item(2).lastChild.value="";
//修改第二个span标签中的用户名input框onblur属性
copy_div.childNodes.item(2).childNodes.item(1).onblur=getQzh;
syr_div.parentNode.insertBefore(copy_div,czrow_div); //将拷贝的行添加到 按钮前面}
function romoveRow()
{
var syr_div = document.getElementById("syr_div");
if(syr_div.parentNode.lastChild.previousSibling != syr_div)
{
syr_div.parentNode.removeChild(syr_div.parentNode.lastChild.previousSibling);
}else
{
alert("不能再删除了!");
}
}
function getQzh()
{
var jh_input = event.srcElement;
var yhm=jh_input.value;
//alert(jh_input.value);
alert(jh_input); //这里验证是否获取到了页面上的元素,输出[object]证明获取到了,输出null是没获取到
alert("哈哈俣!");
}
</SCRIPT>
设置成copy_div.childNodes.item(2).childNodes.item(1).onblur=function test(){alert("一哈哈");};
这样设置是可以触发,但再加一句 copy_div.childNodes.item(2).childNodes.item(1).onblur=function test(){alert("一哈哈");
alert(document.getElementById("qzh5_jh"))};
//alert(document.getElementById("qzh3_jh"))//这样对象 是页面上已存在的,可以获取到,但点击 增加一行 操作后,
页面上应该是增加了 id="qzh5_jh" 的一个元素,使用alert(document.getElementById("qzh5_jh")) 输出结果为null,请问
如何能获取到新增加的这一行的元素?
copy_div.firstChild.childNodes.item(1).id=id_num1 + "_jh";
啊,确实,错了。。唉,让我怀疑了好半天啊,天那!感谢!!copy_div.firstChild.childNodes.item(1).id=qzh1 + "_jh";