onclick="this.form.submit()"为什么是执行2次啊

testjs.php页面:<?phprequire'sqlconn.php';if(!empty($_REQUEST[name])){$sql=pg_query("ins... testjs.php页面:
<?php
require 'sqlconn.php';
if(!empty($_REQUEST[name]))
{
$sql=pg_query("insert into test (name) values ('".$_REQUEST[name]."')");
}

?>
<form action="testjs.php" method="post">
<input name=name type="text">
<input type="image" name="buy" src="save.gif" width="55" height="20" onClick="this.form.submit()" >
<table>
<tr>
<td>id</td>
<td>数据</td>
</tr>
</table>
<table>
<?php
$query=pg_query("select * from test");
while($info=pg_fetch_assoc($query))
{
?>
<tr>
<td><?php echo $info[id];?></td>
<td><?php echo $info[name];?></td>
</tr>
<?php }?>
</table>
为什么我按一次按钮,就往数据库插入了2次数据,当我把this.form.submit()去掉后,就可以正常执行,这样看来,this.form.submit()在此处是根本没用的。我想问下,这个this.form.submit()到底是什么用的?一般用在何处啊?
展开
 我来答
匿名用户
2013-04-14
展开全部
input type="image"

这个按钮默认有个submit事件的,也就是说你要了这个按钮它就要提交一次。再加上你的this.form.submit()
这就要提交两次了
匿名用户
2013-04-14
展开全部
因为你那个图像域就已经可以提交表单了,再加上你的onclick事件,就有两次喽!
把这个去掉: onClick="this.form.submit()"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-14
展开全部
由于你所要提交的数据都必须在<form></form>里.所以当你点buy按钮后会将form表单里的数据通过你的数据库insert语句提交并插入数据库.而this.form.onsubmit()代表把你当前<form></form>里的数据提交.这样就调用了两次insert语句.去掉onclick事件就可以了.
onclick="";事件一般是用来调用JavaScript脚本代码.比如判断你当前用户购买东西时.时候选择的商品.没选择,就提示用户"请选择所要购买的物品",并返回false.不提交.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-14
展开全部
补充一点!this.form.submit()是提交当前表单的意思!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式