当前位置: 首页 > 知识库问答 >
问题:

Jquery ajax表单未提交。直达误差函数

汪弘光
2023-03-14

我有一个表单,用户可以注册一份时事通讯,但我无法让它正确提交。

当我单击submit按钮时,我会收到一条提示“Failure”,因此ajax请求将直接进入ajax请求中的错误集水区。

在我的php中,我得到所有的$u POST变量并将它们插入数据库,我知道脚本正在工作。我只想将消息返回到ajaxsuccess,以便将消息显示给用户。

我到处寻找解决办法,但都找不到。

<?php
    echo "done";
?>

和jQuery的表单

<html>
<head>
<script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {

        $('#mlbutton').click(function() {

            var name = $('#mlName').val();
            var email = $('#mlEmail').val();

            $.ajax({
                type:'POST', 
                url: 'storeAddress.php',
                data:$('#addressform').serialize(),
                success: function(response) {
                    $('#addressform').find('#response').html(response);
                    alert(response);
                },
                complete: function() {
                    $('#addressform').each(function() {
                        this.reset();
                    });
                },
                error: function(){
                    alert('failure');
                }
            });
        });
    });
</script>
</head>
<body>
<form id="addressform">
    <div class="textl1"><label id="namLbl" for="mlName">Name</label><input type="text" id="mlName" name="mlName" /></div>
    <div class="textl1"><label id="emlLbl" for="mlEmail">Email</label><input type="text" id="mlEmail" name="mlEmail" /></div>
    <div class="textr1"><input type="submit" id="mlbutton" name="mlbutton" value="dffhfdh" class="button-signup" /></div>
    <p id="response" style="text-align: left"> </p>
</form>
</body>
</html>

使现代化

增加了e.preventDefault()//在事件上调用阻止默认值

这将停止失败消息,但似乎没有调用php文件。我已经测试了PHP文件,因为没有提供电子邮件地址,我得到了我期待的消息。如果我只是点击表单而没有输入电子邮件地址,我期待着同样的消息,但什么都没有。如果我输入一个电子邮件地址,我希望电子邮件在数据库中,但什么都没发生。就像php文件没有被调用

共有2个答案

束新
2023-03-14

您需要阻止按钮提交页面,以便AJAX可以运行。

$('#mlbutton').click(function(e) {
    e.preventDefault();
    ....
奚飞星
2023-03-14

可以防止窗体的默认操作。

$('#mlbutton').click(function(e) { //added event as argument
    e.preventDefault(); //call prevent default on event
    var name = $('#mlName').val();
    var email = $('#mlEmail').val();

    $.ajax({
        type:'POST', 
        url: 'storeAddress.php',
        data:$('#addressform').serialize(),
        success: function(response) {
            $('#addressform').find('#response').html(response);
            alert(response);
        },
        complete: function() {
            $('#addressform').each(function() {
                this.reset();
            });
        },
        error: function(){
            alert('failure');
        }
    });
});
 类似资料:
  • 获取Form变量 通过Action的如下方法可以获取变量: GetSlice GetString GetInt GetBool GetFloat GetFile GetForm 自动映射 通常我们通过http.Request.Form来获得从用户中请求到服务器端的数据,这些数据一般都是采用name,value的形式提交的。xweb默认支持自动将这些变量映射到Action的成员中,并且这种映射支持子

  • 我试图在单击表单提交按钮时使用Jquery启动一个函数,但该函数需要在表单实际提交之前启动。 我试图在提交时将一些标记属性复制到隐藏的文本字段中,然后提交表单。 我已经通过使用功能(当提交按钮悬停在上方时)成功实现了这一点,但这在使用触摸的移动设备上不起作用。 我玩过提交函数,但是当表单提交时,而不是之前,函数会触发,所以值不会保存在字段中。 非常感谢。

  • 提交表单时出错 当请求的凭据模式为“包括”时,响应中的“访问控制允许来源”标头的值不得为通配符“*”。起源'https://local.oto.com因此,不允许访问。

  • 我正在尝试在用户按回车键时提交登录表单。单击“登录”按钮时,表单运行良好,但按回车键不起作用,此外,还会导致奇怪的行为: 未执行由ng submit关联的功能 按enter键后,不再显示错误消息(登录失败) 以下是我的标记: 注意,我尝试替换了<代码> 具有login()函数的相应控制器如下所示: 我运行angularv1.4.0并使用angular-用户界面-router v.0.2.15进行路

  • Framework7 可以通过ajax自动提交 有两种自动提交方式: 当用户提交了表单 (点击了提交按钮) 或者当通过代码触发了 "submit" 事件 当用户更改了表单的内容,或者当通过代码触发了 "change" 事件 submit时提交表单数据 只需要添加 "ajax-submit" class 在form上,当submit时就会自动通过ajax发送表单数据 <form action="se

  • 大家要切记这一点: 在任何 Single Page App中,js代码都不会产生 一个传统意义的form表单提交!(这会引起整个页面的刷新) 所以,我们往往用事件来实现.(桌面开发思维) 假设,我们在远程有个接口,可以接受别人的留言: URL: http://siwei.me/interface/blogs/add_comment 参数: content: 留言的内容. 请求方式: POST 返回