提交按钮未在Chrome中发布

时间:2011-12-09 08:56:55

标签: php google-chrome post

我有一个带有两个提交按钮的表单。根据点击的按钮,我将处理帖子页面上的值。所以我在按钮点击上设置了action属性的值。

在Firefox中,它会发布表单字段和提交按钮。但在chrome中它只发布表单字段而不是按钮..这是我使用过的代码:

<html>
<script src='jquery-1.6.2.min.js'></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#one,#two').click(function(){
     $("#myform").attr("action", "index.php");
        $("#myform").submit();
    });


});
</script>
<?php
echo "<pre>";print_r($_POST);echo "</pre>";
?>
<form method="POST" name='myform' id='myform'  >
<input name="iint" value="hiox" type="text">
<input name="one" value="hiox" type="submit" id='one'>
<input name="two" value="hiox" type="submit" id='two'>
</form>
</html>  

在这样的post firefox输出上:

Array
(
    [iint] => hiox
    [one] => hiox
)  

在chrome14 [linux版本]中,

Array
(
    [iint] => hiox
)

我需要检查点击的按钮。任何帮助,非常感谢。 Thanksl!

3 个答案:

答案 0 :(得分:3)

尝试使用功能$('#buttonelement').click();模拟按钮点击,而不是使用submit();

啊,由于click();是一个标准的javascript函数,你可能需要使用GetDocumentByID而不是#id jquery selector。

$('#ElementClickedThatCallOne').click(function(){
 $("#myform").attr("action", "index.php");
    document.GetDocumentByID('one').click();
});

$('#ElementClickedThatCallTwo').click(function(){
 $("#myform").attr("action", "index.php");
    document.GetDocumentByID('two').click();
});

答案 1 :(得分:1)

作为我添加的评论的后续内容:

然后(你还有另一个动作)因为在帖子中你只有提交表单的按钮..但你用javascript提交它..

在ff中它有效,因为javascript在提交按钮后运行(我猜)..

你应该考虑接近另一个解决方案,例如:让他们输入类型=&#34;按钮&#34; (而不是提交),点击设置可以在php中使用的隐藏输入的值..该隐藏输入的值将始终可用,但会根据您单击的按钮而改变

您的表单会变成

<html>
<script src='jquery.js'></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#one,#two').click(function(){
        $("#myform").attr("action", "index.php");
        $("#who_submitted_the_form").attr('value',this.id);
        $("#myform").submit();
    });
});
</script>
<?php
echo "<pre>";print_r($_POST);echo "</pre>";
?>
<form method="POST" name='myform' id='myform' >
<input name="iint" value="hiox" type="text"/>
<input name="who_submitted_the_form" id="who_submitted_the_form" value="" type="hidden">
<input name="one" value="hiox" type="button" id="one">
<input name="two" value="hiox" type="button" id="two">
</form>
</html>  

答案 2 :(得分:0)

这是因为提交按钮仅在单击所述提交按钮时传统上包含在表单提交中。

由于您没有通过传统的input="submit"按钮提交表单,因此不会包含任何值。

您可以在form.submit()之前使用此方法。使用单击功能调用提交按钮。所以,传统上它会调用提交按钮。

document.form name.submit button name.click();