在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>
答案 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,那么应该点击提交按钮。