我的php文件中有多个表单用于不同的按钮。因此,如果我单击“返回”按钮,则应调用 ramesh.php 脚本,依此类推。这是代码。
<form action="ramesh.php">
<input type="submit" value="Back" />
</form>
<form action="process.php" method="post">
<input name="rep_skyline" type="text" />
<input type="submit" />
</form>
<form action="update.php" method="post" >
<button type="submit">Update</button>
</form>
但是,我需要在表单提交时从客户端将一些数据传递到服务器,仅用于更新按钮。我有一个javascript函数将数据发送到服务器端,如下所示。
<script type="text/javascript">
$(document).ready(function() {
$('form').submit(function(e) {
var mydata = 3;
if ($(this).is(':not([data-submit="true"])'))
{
$('form').append('<input type="hidden" name="foo" value="'+mydata+'">');
$('form').data('submit', 'true').submit();
e.preventDefault();
return false;
}
})
})
</script>
如果我点击更新按钮,则javascript功能正常运行。但是,如果我点击返回或提交按钮,我就不应该调用javascript函数。有没有办法做到这一点?
答案 0 :(得分:2)
将表单设为id
:
<form action="update.php" method="post" id="update-form">
然后使用更具体的选择器:
$("#update-form").submit(function() {
// Code
});
但是,我不太清楚为什么需要JavaScript来动态地向表单添加数据。您应该直接使用<input type="hidden" />
。
答案 1 :(得分:1)
type=submit
将始终加载表单的操作。尝试指定要提交的表单。
<form name="backForm" id="backForm" action="ramesh.php">
<input type="submit" value="Back" />
</form>
<form name="form2" id="form2" action="process.php" method="post">
<input name="rep_skyline" type="text" />
<input type="submit" />
</form>
现在,您可以通过document.backForm
或document.getElementById("backForm")
访问该表单,然后使用submit();
document.getElementById("backForm").submit();