$posts jquery提交我的表格

$posts jquery submits my form

本文关键字:我的 表格 提交 jquery posts      更新时间:2023-09-26
<script type="text/javascript">
    function claim()
    {
        var c = confirm('You sure?');
        if(c)
        {
            var password=prompt("Please mention pw","");
            if (password!=null && password!="")
              {
                    $.post("/claim/<?php echo $refnr; ?>", { partner_pwd: password },
                       function(data) { 
                            alert(data);
                            if(data == '1')
                            {
                                return true;
                            }else{
                                return false;
                            }
                       });
              }else{
                return false;
              }
        }else{
            return false;
        }
    }
</script>

测试时,我到达请提及 pw,在我输入并按确定后,它会提交我的表单,而不是制作 $.post 并且仅在数据 == '1'(返回 true)时才提交我的表单

claim() 在我的提交按钮上被调用;

<input type="submit" name="submit" onclick="return claim()"; value="Submit" />

我尝试了警报调试,就像我认为它在读取 $.post() 时自动提交一样,如果数据为 1,我只希望它提交(通过返回 true)。

好吧,如果你在网站上放一个表格,它的目标是提交表格。

http://api.jquery.com/submit/(向下滚动到最后一个以 Example: If you'd like to prevent forms from being submitted unless a flag variable is set, try: 开头的示例)

如上面的链接中所述,您应该更改表单的操作而不是某些页面,并执行类似 action="javascript:claim()" 的操作。我认为这应该行得通。

$.post请求中的return truereturn false除了从该回调中返回外,什么也不做。它不会阻止表单提交。相反,请尝试完全阻止提交,然后在希望提交时触发它。

function claim() {
    var c = confirm('You sure?');
    if (!c) {
        return false;
    }
    var password = prompt("Please mention pw", "");
    if (password != null && password != "") {
        $.post("/claim/<?php echo $refnr; ?>", {
            partner_pwd: password
        }, function(data) {
            alert(data);
            if (data == '1') {
                $("#myform").submit();
            }
        });
    }
    return false;
}​

请注意,无论有效性如何,我们总是return false该函数。如果有效,我们将直接触发表单的提交事件。

您在提交时的onclick方法不起作用,因为表单将以任何一种方式提交。

例如,您应该在表单上的onsubmit();事件上设置侦听器或者另一种解决方案是将 onsubmit 属性与 JavaScript 函数放在其中,并使用 $('#form').submit(); 函数从 JavaScript 提交表单。