现在的问题是修改别人的东西,所以要做到“input的名字不要用action”又要去动不少的手脚,可能不大现实
解决方案 »
- JQUERY的表单判断问题,求围观,百分百结贴
- 用JS是否能检测到iframe(跨域)页面中的点击事件?
- 弹出层关闭或隐藏问题
- javascript如何传递参数到jsp页面
- 求命呀,,急!!在线等
- vbscript我不太熟悉,谁能帮将javascript页面改成vbscript的
- 求救:如何在客户端得到服务器端变量的值,服务器端程序为a.asp,客户端程序为b.asp,急急,在线等待。。
- 请问如何通过IE调用一个本地的可执行文件(*.exe)?
- 页面中插入iframe页面,然后iframe页面window.open新窗口,然后新窗口window.opener取值iframe中的input text 失败
- 怎样在javascrip的函数里不打开另外的窗口,而执行一个php或asp程序。
- 怎么写上传,下载的代码
- 怎样在客户端读cookies
<html><body>
<form name=aaa>
<input name=action value=aaaa>
</form>
</body>
</html>
<script language=javascript>
aaa.setAttribute("action","b.htm");
alert(aaa.outerHTML);
alert(aaa['action'].value);
</script>
出现了更严重的问题:IE死掉了
<html><body>
<form name=aaa action=a.htm>
<input name=action value=aaaa>
</form>
</body>
</html>
<script language=javascript>
aaa.removeAttribute("action");
aaa.setAttribute("action","b.htm");
alert(aaa.outerHTML);
alert(aaa['action'].value);
</script>
document.forms["aaa"].elements["aaa"].value="xxxx";
以不会产生歧义的方式引用dom对象和属性.
// modify form action
form1.action = "dest.htm";// modify form elements value
form1.action.value = "input value";
</SCRIPT>
我自己的试过不会啊,上面的确实"死掉了"
--------------------------在您的代码里,form是这样的
<form name=aaa>
但是现在出现问题的时候,form是这样的
<form name=aaa action=a.htm>
所以我按照您的思路,加了一句
aaa.removeAttribute("action");
结果IE就死掉了。
JK刚才按照您的做法试了试,还是不行,代码如下:
<html><body>
<form action=a.htm name=aaa>
<input name=action value=aaaa>
</form>
</body></html>
<script language=javascript>
document.forms["aaa"].setAttribute("action","b.htm");
alert(aaa.outerHTML);
alert(aaa.action.value);
</script>
JK已试过,用form1.action = "dest.htm"不能解决问题,
代码如下:<html><body>
<form action=a.htm name=aaa>
<input name=action value=aaaa>
</form>
</body></html>
<script language=javascript>
aaa.action = "dest.htm";
alert(aaa.outerHTML);
alert(aaa.action.value);
</script>
<HEAD>
<STYLE>
DIV { font-size: 9pt }
</STYLE>
<SCRIPT language=javascript>// 用此标志更换表单的form
var flag = true;function setAction()
{
// 设定 表单的action
form1.setAttribute('action', flag ? 'ccc.htm' : 'ddd.htm', 0);
// 转换flag
flag = !flag;
// 显示整个form的html代码, 以查看结果
show.innerText += '\n\n' + '\n\n' + div.innerHTML;
}function setOnloadCode()
{
// 显示整个form的html代码, 以查看结果
show.innerText = '\n\n' + div.innerHTML;
// 设定 表单的action
form1.setAttribute('action', 'bbb.htm', 0); // 设定 表单的元素action的值
form1.action.value = "input value";
// 显示整个form的html代码, 以查看结果
show.innerText += '\n\n' + div.innerHTML;
}
</SCRIPT>
</HEAD>
<BODY ONLOAD="setOnloadCode()">
<!--存放表单的DIV-->
<DIV ID="div">
<FORM NAME='form1'>
<INPUT NAME=action VALUE=aaaa ACTION='aaa.htm'>
<INPUT TYPE='button' ONCLICK="setAction()" VALUE="set form action">
</FORM>
</DIV>
<!--用来显示结果的DIV-->
<DIV id="show"></DIV>
</BODY>
</HTML>
.
.
.
<SCTIPT>
function setOnloadCode()
{
// some initialize code
}
</SCRIPT>
.
.
.
<!—在这里调用函数,进行初始化动作-->
<BODY ONLOAD="setOnloadCode()">
<HEAD>
<STYLE>
DIV { font-size: 9pt }
</STYLE>
<SCRIPT language=javascript>// 用此标志更换表单的form
var flag = true;/**
* Method 设定窗体的action
*/
function setAction()
{
// 设定 表单的action
form1.setAttribute('action', flag ? 'ccc.htm' : 'ddd.htm', 0);
// 转换flag
flag = !flag;
// 显示整个form的html代码, 以查看结果
div.innerText += '\n\n' + form1.outerHTML;
}/**
* Method 页面初始化函数
*/
function setOnloadCode()
{
// 显示整个form的html代码, 以查看结果
div.innerText = '\n\n' + form1.outerHTML;
// 设定 表单的action
form1.setAttribute('action', 'bbb.htm', 0); // 设定 表单的元素action的值
form1.action.value = "input value";
// 显示整个form的html代码, 以查看结果
div.innerText += '\n\n' + form1.outerHTML;
}
</SCRIPT>
</HEAD>
<BODY ONLOAD="setOnloadCode()">
<!--注意!!!窗体的html代码中不能有 action=''-->
<FORM NAME='form1'>
<INPUT NAME=action VALUE=aaaa>
<INPUT TYPE='button' ONCLICK="setAction()" VALUE="set form action">
</FORM>
<!--用来显示结果的DIV-->
<DIV id="div"></DIV>
</BODY>
</HTML>
参见回复:“ 回复人: JK_10000(JK1) ( ) 信誉:111 2003-5-14 9:23:10 得分:0 ”
不过可以用你的方法(在onload里添加action)解决JK目前实际遇到的问题。
<input name="action" value="a">
</form>
<script>
alert(a.attributes["action"].value);
</script>
<input name="action" value="a">
</form>
<script>
alert(a.attributes["action"].value);
alert(a.action.value);
</script>
想不到还有attributes这个Collections,强!
果然管用
JK手头的参考书里也没有attributes这个collections。
请问你是从哪里找到的?
可否把宝典共享
JK看的也是这个文件啊,版本是4.74.8702,里面没有这个collections;
不知你们用的是哪个版本的?
<form action=a.htm name=aaa>
<input name=action value=aaaa>
</form></body></html>
<script language=javascript>
aaa.mergeAttributes(document.createElement("<form action=test.htm>"))
alert(aaa.outerHTML);
alert(aaa.action.value);
</script>
<input name="action" value="54">
</form><script>alert(a.attributes["action"].value);
alert(a.elements["action"].value);alert(a.attributes.action.value);
alert(a.elements.action.value);</script>
* attributes集合不提供style对象 (这个没多大所谓了)
* 不同于其他dhtml集合,attributes集合是静态的,对象属性的修改不能通过该对象attributes集合的现有参考自动反应。(这个比较讨厌)--《动态HTML参考和开发应用大全》
document.aaa.action = "b.htm" ;就可以了
这样你的form中的action的值就转换了;
如果你要改变名为action的input框内的值,你可以写:
document.aaa.action.value = "bbbbb" ;