<form name="form1" method="post" action="a.jsp" onSubmit="checktalk()">
把 onSubmit="checktalk()" 去掉
-> <form name="form1" method="post" action="a.jsp">
把 onSubmit="checktalk()" 去掉
-> <form name="form1" method="post" action="a.jsp">
解决方案 »
- 读取服务器目录upload时,如果upload是空的话会出现空指针异常,应怎样避免?
- 关于图片的防盗问题
- jxl Excel 导入的问题
- struts上传文件,客户端先压缩后再上传,可行吗?
- 求教!用Servlet编写计数器问题!!!!急啊个位大哥!!!
- 在JSP里这样连接数据库对么?
- Sruts从数据库中检索出数据,怎么样才可以显示在jsp页面上 ? 谢谢
- 有没有在linux下解决验证码问题的JSP源码,在线等,急,急
- 如何实现关闭一个弹出窗口,并传参给另一个窗口
- 请问servlet一般用于场合...?
- 急! 关于java,jsp,word 编程[求助]
- jsp能不能实现动态include文件???
里的checktalk()在作怪
如果去掉onSubmit="checktalk()"
当点击提交按钮时,怎么才能检验发言是否为空呢?
to:Hodex(小何才露尖尖角)
如果在postart()中不判断checktalk()的话,按ctrl+enter提交时,因为submit()函数是不会触发onSubmit="checktalk()" 的,所以也不能检验发言是否为空!
二位大侠感觉怎么样,够头疼吧!
1。onKeyDown
2。onSubmit<form name="form1" method="post" action="a.jsp">
<input name="textfield2" type="text" size="60" onKeyDown="postart()"><input type="button" value='递交' onclick="postart()">
function postart()
{
if(event.ctrlKey&&event.keyCode==13)
{
}
}
function checktalk()
{
if(document.form1.textfield2.value.length==0)
{
alert("发言不可以为空!");
return false;
}
else document.form1.submit();
}
</script>
<script language="JavaScript">
function postart()
{
if(event.ctrlKey&&event.keyCode==13)
{
if(document.form1.textfield2.value.length==0)
{
alert("发言不可以为空!");
return false;
}
else
{
document.form1.submit();
}
}
}
</script>
但是document.form1.submit()到底会不会触发onSubmit="checktalk()"呢?
如果会,那么我将postart()改为:
function postart()
{
if(event.ctrlKey&&event.keyCode==13)
{
document.form1.submit();
}
}
就应该触发onSubmit="checktalk()"进行检验,但事实上不会进行检验!
如果不会,那么我按ctrl+enter提交时,虽然postart()里执行了checktalk(),但是onSubmit="checktalk()"应该不会执行,所以也不会执行两次checktalk(),可是事实上的确执行了两次!
你们说是咋回事哩!
答:不会
e.g :
<form name="form1" action ="a.asp" onsubmit="alert ('onsubmit is running')">
<input type=button onclick="document.form1.submit()"><!--此处不会触发-->
<input type="text" name="textfield2"><!--有焦点时 打回车提交该form并触发onsubmit-->
<input type=submit> <!--此处会触发-->
</form>
2:为什么会执行两次?
答: 因为当你把焦点放在textfield2这个文本框时,按下enter键 就会提交该form.
所以你按下ctrl加enter的时候 做了两件事情:一个是提交了form,触发onsubmit(),另一个就是执行了postart()中的checktalk().所以如果textfield2为空,就会弹出两次对话框.
function postart()
{
if(event.ctrlKey && event.keyCode==13)
{
checktalk();
}
}
function checktalk()
{
if(document.form1.textfield2.value.length==0)
{
alert("发言不可以为空!");
}
else{
document.form2.submit();
}
}
</script>
<form name="form1" onSubmit="return false;">
<input type=button value="提交" onclick="checktalk();" >
<input name="textfield2" type="text" size="60" onKeyDown="postart()">
</form>
<form name="form2" method="post" action="提交页面.jsp">
</form>
解释的非常到位!
给分没商量!