如何使用jquery在div上单击提交表单?

时间:2014-02-03 17:25:21

标签: javascript php jquery html forms

我已经在单个php文件中尝试了这个但是没有用,所以我现在尝试在两个单独的php文件中一个用于表单,另一个用于进程。

如何在div或链接上提交表单?

我试过的代码

$(document).ready(function(){
    jQuery('.web').click(function () {
        $("#g_form").submit();
        alert('alert');
    });
});

FORM

<form action="p.php" id="g_form" method="POST">
    <input type="text" name="f1" value="">
    <input type="submit" value="submit!" name="submit"/>
</form>

<div class="web">click</div>

以下是流程文件代码 p.php

<?php
if(isset($_POST['f1'])){
    echo $_POST['f1'];
} ?>

当我点击提交按钮时,表单正在提交,但是当我点击.web div时,即使我收到提醒信息但没有提交,也没有提交表单。

这里做错了什么?如果我有个主意,那将会很有帮助。

6 个答案:

答案 0 :(得分:5)

.submit() docs

  

表单及其子元素不应使用与表单属性冲突的输入名称或ID,例如submit,length或method。   名称冲突可能导致混乱的故障。有关的完整列表   规则以及检查这些问题的标记,请参阅   DOMLint

您提交提交按钮的名称,上述段落告诉您将导致“令人困惑的失败”

因此,如果您访问dom元素并查看.submit属性,您会看到,因为您将按钮提交而不是.submit作为函数,所以它是对按钮dom元素的引用

HTML

<form action="p.php" id="g_form" method="POST">
    <input type="text" name="f1" value="">
    <input type="submit" value="submit!" name="submit"/>
</form>

<div class="web">click</div>

JS

//Get the form element
var form = $("#g_form")[0];
console.log(form.submit);
//prints: <input type="submit" value="submit!" name="submit"/>

当您更改提交名称

<form action="p.php" id="g_form" method="POST">
    <input type="text" name="f1" value="">
    <input type="submit" value="submit!" name="psubmit"/>
</form>

<div class="web">click</div>

JS

var form = $("#g_form")[0];
console.log(form.submit);
//prints: function submit() { [native code] } 

因此,只需为提交按钮指定一个与表单属性不冲突的其他名称。

答案 1 :(得分:2)

您可以触发提交按钮点击。

<form action="p.php" id="g_form" method="POST">
<input type="text" name="f1" value="">
<input type="submit" value="submit!" id="f_submit" name="submit"/>
</form>

<div class="web">click</div>



 $(document).ready(function(){
       jQuery('.web').click(function () {
        $("#f_submit").trigger( "click" );
          alert('alert');
    });
  });

DEMO:http://jsfiddle.net/awladnas/a6NJk/610/

答案 2 :(得分:2)

HTML(提供表单名称,从提交中删除名称):

<form action="p.php" name="g_form" id="g_form" method="post">
    <input type="text" name="f1" value="">
    <input type="submit" value="submit!"/>
</form>

<div class="web">click</div>

的JavaScript

//use jQuery instead of $ in the global scope, to avoid conflicts. Pass $ as parameter
jQuery(document).ready(function($){
    //use on(), as it's the recommended method
    $('.web').on('click', function () {
        //use plain JavaScript. Forms are easily accessed with plain JavaScript.
        document.g_form.submit();
        alert('alert');
    });
});

答案 3 :(得分:1)

更改提交的名称并尝试

<input type="submit" value="submit!" name="mySubmit"/>

答案 4 :(得分:1)

从表单中删除提交,然后重试:

<form action="http://test.com" id="g_form" method="GET">
    <input type="text" name="f1" value=""/>
</form>

<div class="web">click</div>

我将操作更改为真实网址,将方法更改为GET,以便看到某些内容发生变化。

Fiddle

答案 5 :(得分:-1)

$(".web").live('click', DivClick);

function DivClick(){
    $("#g_form").submit();
}