发送表格需要双重提交

时间:2013-08-30 21:52:33

标签: jquery form-submit

我的表单有点问题,我需要按下提交按钮2次,我的脚本就是这样:

<script>  
function login(id) {
    jQuery("#form_" + id).submit(function () {

        var value_pin = jQuery(".pin_" + id).val();
    });
}
</script>

HTML

<form id="form_ini" name="form" method="post" action="?" onsubmit="login('ini');return false;">

<input name="pin_vps" id="cp_input" type="text" class="pin_vps" value="">
<input name="submit" type="submit" value="Send" id="submit"/>
</form>

这可以在我提交2次后提交,如果没有,最后没有效果。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您需要提供更多详细信息,但尝试这两种方法,我简化您的方法只是为了向您展示如何提交表单,您需要双重发布它的原因,因为第一次单击设置事件并返回false,所以你需要再次点击它以激活事件。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js" > </script> 
</head>
<body>
<form id="form_1" name="form" method="post" action="?" onsubmit="return false;">
  <input name="pin_vps" id="cp_input" type="text" class="pin_vps" value="">
  <input name="submit" type="submit" value="Send" id="submit" data-ini="1" />
</form>


<script>  
$( document ).ready(function() {
   $("#form_1").submit(function () {
        alert("test");
    });
});
</script>
</body>
</html>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js" > </script> 
</head>
<body>
<form id="form_1" name="form" method="post" action="?">
  <input name="pin_vps" id="cp_input" type="text" class="pin_vps" value="">
  <input name="submit" type="button" value="Send" id="submit" data-ini="1" />
</form>


<script>  
$( document ).ready(function() {
    $("#submit").click(function () {
        var value_pin = $(this).data("ini");
    alert("test");
    });
});
</script>
</body>
</html>

答案 1 :(得分:0)

问题是您的return false属性中有onsubmit。这会阻止表单提交。它调用login(),用新函数替换提交处理程序,该函数不返回false。因此,下次您提交表单时,它会起作用。

更改为:

function login(id) {
    var value_pin = jQuery(".pin_" + id).val();
    // Do something with value_pin
}

$(function() {
    $("#form_ini").submit(function() {
        login("ini");
    });
});

并从onsubmit删除<form>属性。