【问题标题】:jQuery submit form via submit buttonjQuery 通过提交按钮提交表单
【发布时间】:2015-02-28 19:46:43
【问题描述】:

是否可以通过单击 div 元素来提交表单,就好像它是通过提交按钮提交的一样?

让这个 PHP 工作:

if(isset($_POST["share"])) { /* do something*/ }

表格:

<form id="form" action="publish.php" method="POST">

  <textarea name="description" maxlength="500">Description...</textarea>

  <input type="submit" name="share" value="Share" />

</form>

这不会发布共享值 $_POST['share']。

if($(".post-form").length){

        $(".post-form").click(function(event) {

            $("#form").submit();
            return false;

        });

    }

【问题讨论】:

  • 看看jquery submit() 方法。 api.jquery.com/submit
  • 阅读下面的 cmets。这没有帮助
  • shareinputtype = "submit"。你想从那里得到什么?这就是为什么$_POST['share'] 没有设置的原因,我猜。您可能想改用$_POST['description']

标签: php jquery


【解决方案1】:

是的,这可以通过使用.submit() 函数来实现。你可以这样使用它:

// Wait until the document has been fully loaded
$(document).ready(function() {

    // Bind a click event to your element
    $('div').click(function(event) {

        // Submit the form
        // The callback should add a hidden field with the name "share"
        $('form').submit(function(eventObj) {
            $('<input />').attr('type', 'hidden')
                .attr('name', "share")
                .attr('value', "Share")
                .appendTo('form');
            return true;
        });
    });
});

您可以找到更多信息here

演示:jsfiddle

【讨论】:

  • 嗨,确实发布了表单,但不通过 $_POST['share'] 发送值,所以函数 if(isset($_POST["share"])) { /* do有些东西*/ } 不起作用。
  • @Joseph 你的表单必须有一个 method="post" 属性
  • 是的,我更新了问题,你现在明白问题了吗?
  • @Joseph 尝试将提交按钮更改为“隐藏”类型,或将其添加为文本字段,可选择检查是否设置了 $_POST['description'],因为 $_POST[ 'submit'] 并没有真正做任何有用的事情 ;)
  • 我知道有解决方案,但问题是是否有办法通过单击 div 而不是使用 jQuery 来触发提交按钮单击。如果 js 被禁用,提交按钮应该仍然存在。
【解决方案2】:

为提交按钮设置一个id:

  <input type="submit" name="share" value="Share" id="btn_submit" />

那么你可以像这样在jquery中控制它:

$("#btn_submit").onclick(function(){
    if(condition==true)
    {
        return true;
    }
    else
    {
        return false;
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 2016-06-24
    • 2013-03-24
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多