2009/09/24 14:15
文章作者:Enjoy 转载请注明原文链接。
有朋友问我,同一个表单,但里面有个input的name是action,跟form里面的action会有冲突。我开始还直接回答:
表单名为form1
input里的action值是document.form1.action.value
form里的action值是document.form1.action
应该不会冲突。
但实践证明,确实会冲突。
当有ipnut的name为action时,通过JS给form里的action赋值时,会提示:Error:Object doesn't support this property or method。
在网上查了下,可以能过form的attributes来罗列form的各项属性,我测试的form名为hx。
frm = document.hx;
for(i=0;i<frm.attributes.length;i++){
document.write(frm.attributes[i].name+"-------Index:"+i+"<br>");
}
for(i=0;i<frm.attributes.length;i++){
document.write(frm.attributes[i].name+"-------Index:"+i+"<br>");
}
发现action的属性是83,通过设置frm.attributes[83].value,就可以更改form中的action值。
不过,在FF和Chrome下,action不是83是2,所以要兼容多个浏览器的话,还得再多判断下。
以下是示例代码:
<!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">
<title></title>
<body>
<form action="" method="post" name="hx">
<input type="text" value="13055210000" name="key">
<input type="hidden" value="" name="mobile">
<input type="hidden" value="" name="action">
<input type="hidden" value="" name="ip">
<a href="javascript:a()">a</a>
<a href="javascript:b()">b</a>
</form>
<script type="text/javascript">
frm = document.hx;
for(i=0;i<frm.attributes.length;i++){
document.write(frm.attributes[i].name+"-------Index:"+i+"<br>");
}
function a(){
frm = document.hx;
frm.attributes[83].value="http://www.ip138.com:8080/search.asp";
//frm.action = "http://www.ip138.com:8080/search.asp";
frm.mobile.value=frm.key.value;
frm.action.value="mobile";
frm.submit();
}
function b(){
frm = document.hx;
frm.attributes[83].value="http://www.ip138.com/ips8.asp";
frm.ip.value=frm.key.value;
frm.action.value="2";
frm.submit();
}
</script>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<title></title>
<body>
<form action="" method="post" name="hx">
<input type="text" value="13055210000" name="key">
<input type="hidden" value="" name="mobile">
<input type="hidden" value="" name="action">
<input type="hidden" value="" name="ip">
<a href="javascript:a()">a</a>
<a href="javascript:b()">b</a>
</form>
<script type="text/javascript">
frm = document.hx;
for(i=0;i<frm.attributes.length;i++){
document.write(frm.attributes[i].name+"-------Index:"+i+"<br>");
}
function a(){
frm = document.hx;
frm.attributes[83].value="http://www.ip138.com:8080/search.asp";
//frm.action = "http://www.ip138.com:8080/search.asp";
frm.mobile.value=frm.key.value;
frm.action.value="mobile";
frm.submit();
}
function b(){
frm = document.hx;
frm.attributes[83].value="http://www.ip138.com/ips8.asp";
frm.ip.value=frm.key.value;
frm.action.value="2";
frm.submit();
}
</script>
</body>
</html>

MYSQL字符索引和数字索引的比较
MYSQL同步出现乱码

