单个表单的javascript函数调用

时间:2014-01-23 16:05:30

标签: javascript php

我的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函数。有没有办法做到这一点?

2 个答案:

答案 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.backFormdocument.getElementById("backForm")访问该表单,然后使用submit();

之类的document.getElementById("backForm").submit();