jquery表单插件&程序化提交

时间:2009-02-12 05:19:20

标签: php jquery ajax forms

在SO上也有类似的问题,但似乎都没有解决这个问题。

以下是我情况的一个非常简化的变体。 Drupal / PHP站点 - 我有一个表单w / submit按钮,我使用jquery.form插件来ajax-ly提交。如果我使用submit(#submit)按钮,它工作正常。

现在,我想以编程方式使用表单外部的另一个按钮(#submit2)来触发该按钮。我可以使用jquery click()函数来做到这一点,但回来的内容不会像我期望的那样转到ajax目标。

我没有太多自由重新组织这段代码,否则我会。

(注意我试图通过src-ing jquery和我网站上的表单插件来运行这段代码。)

想法?谢谢!

<?php
if ($_REQUEST['submit'] == 'Submit') {
    print 'ajax returns ... ' . $_REQUEST['text']; 
    exit; 
}
?>
<html>
<head>
    <script type="text/javascript" src="http://enjoy3d.com/scripts/jquery-1.2.6.js"></script>
    <script type="text/javascript" src="http://enjoy3d.com/scripts/jquery.form.js"></script>
    <script type="text/javascript">
        $(function() {
            $('#form').ajaxForm( { target: $('#span') } );
            $('#submit2').click( function() { $('#submit').click(); } );
        });
    </script>
</head>
<body>
    <span id='span'>target span</span>
    <form method='post' id='form'>
        <input type='text' name='text' size='50' />
        <input type='submit' id='submit' name='submit' value='Submit'/>
    </form>
    <input type='submit' id='submit2' name='submit2' value='Submit Too?' />
</body>
</html>

3 个答案:

答案 0 :(得分:1)

我设法解决了与你类似的情况。如果模拟单击submit1的唯一目的是提交表单,您可以尝试:

$('#submit2').click(function() {
    $('#form').trigger('submit');
});

答案 1 :(得分:0)

在触发非表单提交按钮单击事件代码中的表单提交按钮后,您可能还需要立即return false。例如:

<script type="text/javascript">
  $(function() {
    $('#form').ajaxForm({ target: $('#span') });
    $('#submit2').click(function() { $('#submit').click(); return false; });
  });
</script>

它对我有用。那是你在找什么?

答案 2 :(得分:0)

您是否尝试过为表单命名,而不是

$('#submit2').click( function() { $('#submit').click(); } );

操作

$('#submit2').click( function() { document.myForm.submit(); } );

如果表单已经被ajaxified,那么应该点击提交按钮。