日期:2014-05-16  浏览次数:20314 次

this.form1.submit()在FF中为什么不能正常执行
在一个程序中我用this.form1.submit()提交表单,在IE下正常,FF中不能提交
<form   id= "form1 "   name= "form1 "   method= "post "   action= "?action=ADDRS ">
省略输入表格
<div   style= "margin-left:310px; ">
<input   type= "reset "   value= "重填 "     class= "btn "   />  
<input   name= "按钮 "   type= "button "   class= "btn "   onclick= "   CheckStr(); "   value= "添加 "/>

</div>
                 
</form> >

function   CheckStr()
{
进行判断符合条件

this.form1.submit()}
后改为
var   frmEle=document.getElementById( "form1 ")
                frmEle.submit();
IE,FF都能正常执行,想问一下,在FF中应怎么正确指出form1元素(不用getElementById)


------解决方案--------------------
document.form1.submit()
------解决方案--------------------
都是这样子写的


<form id= "form1 " name= "form1 " method= "post " action= "?action=ADDRS ">
<div style= "margin-left:310px; ">
<input type= "reset " value= "重填 " class= "btn " />
<input name= "按钮 " type= "submit " class= "btn " onclick= " return CheckStr(); " value= "添加 "/>

</div>

</form> >
<script language= "JavaScript ">
<!--

function CheckStr()
{
//进行判断符合条件
//document.form1.submit()
return true;
//不符合条件
//return false;
}
//-->
</script>
------解决方案--------------------
FF下不能直接用ID来引用DOM对象,所以第一种不行
第二种情况又不一样,是在onkeyup事件里写的,那么,this引用响应onkeyup事件的对象,也就是文本框,this.from指的是该文本框所在的form对象,所以可以.

------解决方案--------------------
form1是form的名字。
那个例子代码是写在 <textarea> 标签里的,根据上下文环境,this值textarea对象,而form是textarea对象的一个属性,指的是textarea所在的form,就是form1了。
相当于document.form1.liuyan.form
也可以 document.form1.liuyan.form.submit();
document.forms[0].submit();
------解决方案--------------------
因为第一个你不是写在form 里面的,必须用document.form1
而第二个是在 <textarea> 标签的onkeyup事件里写的 this.form就代表 <textarea> 所在的form所以是可行的
------解决方案--------------------
<script type=text/javascript>
function hanshu(obj)
{
alert(obj.nodeName);
}
</script>
<form name= "form1 ">
<input type= "button " name= "a " value= "a " onclick= "hanshu(this.form) ">
</form>