2009-02-12 56 views
2

SO上也有类似的问题,但似乎没有解决这个问题。jquery表单插件&编程提交

下面是我的情况的一个非常简化的变体。 Drupal/PHP网站 - 我有一个表单提交按钮,我正在使用jquery.form插件ajax-ly提交。如果我使用提交(#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> 

回答

0

您可能还需要return false触发形式从非形式提交按钮提交按钮点击事件代码之后。例如:

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

它适用于我。那是你在找什么?

+0

真的,它适合您吗?当我尝试你的建议时没有任何区别。单击submit2导致页面重新加载,只显示ajax结果内容(输入字段消失) – 2009-02-12 06:38:32

0

你试过给一个名称的形式,而不是

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

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

这应该做同样的事情,有如果表单被Ajax化的提交按钮点击。

+0

jquery.form插件将功能绑定到提交按钮的click事件,因此直接提交表单不起作用 – 2009-02-12 15:43:22

1

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

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