为什么不能触发Form的submit 还有,如果Form的定义如下:<form name=form1 onSubmit="return fun(this)">即在提交时调用fun(form)函数,如果返回为true则提交,如果返回为false则不提交。那如上的代码应该怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <form name=form1 onSubmit="return fun(this)"><input type=submit></form><script>function fun(obj){var a = 1;if(a==1){ return true}else{ return false;}}</script> 第一个你写的什么,好乱<body><script language=javascript>function document.onkeydown(eventobject){ ie = (document.all)? true:false if (ie){ if(event.ctrlKey && window.event.keyCode==13){ document.form1.submit(); } }}</script><form name="form1" action="test.asp"><input type=submit><input></form></body> bencalie(Bencalie)的第一贴可能没理解我的意思我是说如果form是这样定义的,那快捷键调用form的submit时有什么区别我的第一贴不完整的,只是javascript的代码,本来还有...<textarea ... onkeydown=ctlent()></textarea>...明白我的意思了吧这段代码一般是能用的,我是问什么情况下无法触发?谢谢 看不懂你的函数定义为什么放在一个if语句里看你的代码,只要在TEXTAREA里面按Ctrl+Enter就会触发提交事件 if(event.ctrlKey && window.event.keyCode==13)这句不就是判断按键的吗?只要是按Ctrl+Enter就会执行,当然按的不是这个组合键,括号里的就不执行了 函数定义为什么放在一个if语句里放在 if语句里面本身就是错误的你的代码有问题当然触发不了了一般都可以触发的submit默认就是 如果返回为true则提交,如果返回为false则不提交。 并且如果form如上定义的话,用上面的脚本,就无法实现adda()函数想达到的效果,即不管是否返回true或是false,form都会提交那应该怎么写脚本呢? 你们可以试一下如下的代码<html><head><script language=javascript>function adda(theform){alert("OK!");return true; ////改成false再试试}</script></head><body><form name=form1 onSubmit="return adda(this)"><textarea name=content cols=100 rows=7 title="可以使用Ctrl+Enter回复" onkeydown=ctlent()></textarea><input type=submit value="发布" name=submit)></form><script language=javascript>ie = (document.all)? true:falseif (ie){ function ctlent(eventobject){ if(event.ctrlKey && window.event.keyCode==13){ this.document.form1.submit(); } }}</script></body></html>你会发现按“发布”会弹出对话框,而按“Ctrl+Enter”不会(因为根本没有调用adda())。但两者都会提交。如果函数adda()返回false,则按“发布”弹对话框,但不提交;而组合键和之前状况一样。难道非要写成 if(adda(form1)) this.document.form1.submit();这样吗? 1、onkeydown=ctlent()是写在TEXTAREA里面的啊,需要这个TEXTAREA获得焦点的时候按Ctrl+Enter2、表单名.submit()不会触发onsubmit事件,修改如下:this.document.form1.submit();->this.document.form1.onsubmit();完整代码:<html><head><script language=javascript>function adda(theform){alert("OK!");return true; ////改成false再试试}</script></head><body><form name=form1 onSubmit="return adda(this)"><textarea name=content cols=100 rows=7 title="可以使用Ctrl+Enter回复" onkeydown=ctlent()></textarea><input type=submit value="发布" name=submit)></form><script language=javascript>ie = (document.all)? true:falseif (ie){ function ctlent(eventobject){ if(event.ctrlKey && window.event.keyCode==13){ this.document.form1.onsubmit(); } }}</script></body></html> 还是有问题改成onsubmit()之后,adda()函数是触发了,但是不管返回true或者false,都不会提交我试了 这么改吧<html><head><script language=javascript>function adda(theform){alert("OK!");return true; ////改成false再试试}</script></head><body><form name=form1 onSubmit="return adda(this)"><textarea name=content cols=100 rows=7 title="可以使用Ctrl+Enter回复" onkeydown=ctlent()></textarea><input type=submit value="发布" name=submit)></form><script language=javascript>ie = (document.all)? true:falseif (ie){ function ctlent(eventobject){ if(event.ctrlKey && window.event.keyCode==13 && adda()){ this.document.form1.submit(); } }}</script></body></html> 我觉得上面的改法和if(adda(form1)) this.document.form1.submit()差不多,都不太通用,要根据onSubmit情况的变化而改写代码这个问题我已经解决了我后来采用的是this.document.form1.submit.click();不是有个<input type=submit value="发布" name=submit>吗?我想一般不会没这个吧!:)这样就没问题了还是非常感谢bencalie(Bencalie)的指点:) 之前不能触发也是这个问题!当form的onsubmit定义为onsubmit="return foo()"时,或者根本没有onsubmit时如果this.document.form1.submit() 就会出现错误:对象不支持此属性或方法。如我第一帖所说的那样,而采用this.document.form1.submit.click() 的方式(当然前提是有这个input),则没有这些问题。希望我遇到的问题,对大家有帮助! 怎么根据某一列的数据用JS合并第一列? 1.功能逻辑.一个是判断加载情况,一个是服务器响应情况,两个逻辑功能的判断,分开来条理清晰,职责清晰 2.减少判断次数,这里一般跟踪的是readysatus变化 请教有关控制页面跳转的问题?????? 大家运行下,帮俺看看! 请教:如题 请教在jsp页面中子父窗口传值的问题 全屏问题-- 这么漂亮,怎么做的?一定要搞清楚! onunload 事件现在好像很多浏览器都不执行该事件? WdatePicker怎么输整点 关于checkbox ShowModelessDialog中的Form怎么提交给弹出它的网页?
<input type=submit>
</form>
<script>
function fun(obj){
var a = 1;
if(a==1){
return true
}
else{
return false;
}
}
</script>
<script language=javascript>
function document.onkeydown(eventobject){
ie = (document.all)? true:false
if (ie){
if(event.ctrlKey && window.event.keyCode==13){
document.form1.submit();
}
}
}
</script>
<form name="form1" action="test.asp">
<input type=submit><input>
</form>
</body>
我是说如果form是这样定义的,那快捷键调用form的submit时有什么区别我的第一贴不完整的,只是javascript的代码,本来还有
...
<textarea ... onkeydown=ctlent()></textarea>
...
明白我的意思了吧这段代码一般是能用的,我是问什么情况下无法触发?
谢谢
放在 if语句里面本身就是错误的
你的代码有问题当然触发不了了
一般都可以触发的
submit默认就是 如果返回为true则提交,如果返回为false则不提交。
<html>
<head>
<script language=javascript>
function adda(theform){
alert("OK!");
return true; ////改成false再试试
}
</script>
</head>
<body>
<form name=form1 onSubmit="return adda(this)">
<textarea name=content cols=100 rows=7 title="可以使用Ctrl+Enter回复" onkeydown=ctlent()></textarea>
<input type=submit value="发布" name=submit)>
</form>
<script language=javascript>
ie = (document.all)? true:false
if (ie){
function ctlent(eventobject){
if(event.ctrlKey && window.event.keyCode==13){
this.document.form1.submit();
}
}
}
</script>
</body>
</html>你会发现按“发布”会弹出对话框,而按“Ctrl+Enter”不会(因为根本没有调用adda())。但两者都会提交。
如果函数adda()返回false,则按“发布”弹对话框,但不提交;而组合键和之前状况一样。难道非要写成 if(adda(form1)) this.document.form1.submit();这样吗?
this.document.form1.submit();
->
this.document.form1.onsubmit();完整代码:
<html>
<head>
<script language=javascript>
function adda(theform){
alert("OK!");
return true; ////改成false再试试
}
</script>
</head>
<body>
<form name=form1 onSubmit="return adda(this)">
<textarea name=content cols=100 rows=7 title="可以使用Ctrl+Enter回复" onkeydown=ctlent()></textarea>
<input type=submit value="发布" name=submit)>
</form>
<script language=javascript>
ie = (document.all)? true:false
if (ie){
function ctlent(eventobject){
if(event.ctrlKey && window.event.keyCode==13){
this.document.form1.onsubmit();
}
}
}
</script>
</body>
</html>
改成onsubmit()之后,adda()函数是触发了,但是不管返回true或者false,都不会提交
我试了
<head>
<script language=javascript>
function adda(theform){
alert("OK!");
return true; ////改成false再试试
}
</script>
</head>
<body>
<form name=form1 onSubmit="return adda(this)">
<textarea name=content cols=100 rows=7 title="可以使用Ctrl+Enter回复" onkeydown=ctlent()></textarea>
<input type=submit value="发布" name=submit)>
</form>
<script language=javascript>
ie = (document.all)? true:false
if (ie){
function ctlent(eventobject){
if(event.ctrlKey && window.event.keyCode==13 && adda()){
this.document.form1.submit();
}
}
}
</script>
</body>
</html>
我后来采用的是
this.document.form1.submit.click();
不是有个<input type=submit value="发布" name=submit>吗?我想一般不会没这个吧!:)
这样就没问题了还是非常感谢bencalie(Bencalie)的指点:)
当form的onsubmit定义为onsubmit="return foo()"时,或者根本没有onsubmit时
如果this.document.form1.submit() 就会出现错误:对象不支持此属性或方法。如我第一帖所说的那样,而采用this.document.form1.submit.click() 的方式(当然前提是有这个input),则没有这些问题。希望我遇到的问题,对大家有帮助!