luyun0000 2024-05-02 17:59 采纳率: 0%
浏览 3

一直显示函数doSendMail未定义,求解


    function doSendMail(obj) {
    var email = $.trim($("#regname").val());
    // 对邮箱地址进行校验(xxx@xxx.xx)
    if (!email.match([\w]{6,10}@(163|126|qq).com)) {
        bootbox.alert({title:"错误提示", message:"邮箱地址格式不正确."});
        $("#regname").focus();
        return false;
    }
    $.post('/ecode', 'email=' + email, function (data) {
        if (data == 'email-invalid') {
             bootbox.alert({title:"错误提示", message:"邮箱地址格式不正确."});
            $("#regname").focus();
            return false;
        }
        if (data == 'send-pass') {
            bootbox.alert({title:"信息提示", message:"邮箱验证码已成功发送,请查收."});
            $("#regname").attr('disabled', true);   // 验证码发送完成后禁止修改注册邮箱
            $(obj).attr('disabled', true);     // 发送邮件按钮变成不可用
            return false;
        }
        else {
            bootbox.alert({title:"错误提示", message:"邮箱验证码未发送成功."});
            return false;
        }
    })
}
<button type="button" class="btn btn-primary col-3" onclick="doSendMail(this)">发送邮件</button>

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-02 17:59
    关注

    引自免费微信小程序:皆我百晓生

    看起来您在JavaScript中遇到了一个函数未定义的问题。根据提供的代码,函数doSendMail应该已经定义了。但是,为了确保没有遗漏,我们可以将这个函数放在全局作用域或者确保它在调用之前已经被加载。在这种情况下,由于代码片段已经是全局的,所以问题可能出在其他地方。

    检查您的HTML文件是否包含了jQuery库,因为$.trim()$.post() 都是jQuery的方法。如果没有包含,您需要在HTML页面的

    <head></head>部分添加以下引用:
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    

    如果您已经在其他地方引入了jQuery,那么可能是加载顺序问题,确保jQuery先于您使用它的任何脚本执行。

    另一种可能的情况是,您在浏览器的控制台查看是否有任何其他的错误,这可能会提供一些额外的信息。

    鉴于以上情况,您可以尝试以下步骤来解决这个问题:

    1. 确保已经正确引入了jQuery库。
    2. 检查浏览器控制台,看是否有其他错误信息。
    3. 如果问题依然存在,请确认您的HTML文档结构是否正确,按钮元素是否存在,并且正确的绑定了onclick事件。

    这是一个完整的HTML示例,包括了jQuery引用和您的代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Send Mail Example</title>
        <!-- Include jQuery -->
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        <!-- Your custom script -->
        <script>
            function doSendMail(obj) {
                var email = $.trim($("#regname").val());
                // 对邮箱地址进行校验(xxx@xxx.xx)
                if (!email.match(/\w{6,10}@(163|126|qq)\.com/)) {
                    bootbox.alert({title:"错误提示", message:"邮箱地址格式不正确."});
                    $("#regname").focus();
                    return false;
                }
                $.post('/ecode', 'email=' + email, function (data) {
                    if (data == 'email-invalid') {
                        bootbox.alert({title:"错误提示", message:"邮箱地址格式不正确."});
                        $("#regname").focus();
                        return false;
                    }
                    if (data == 'send-pass') {
                        bootbox.alert({title:"信息提示", message:"邮箱验证码已成功发送,请查收."});
                        $("#regname").attr('disabled', true);   // 验证码发送完成后禁止修改注册邮箱
                        $(obj).attr('disabled', true);     // 发送邮件按钮变成不可用
                        return false;
                    }
                    else {
                        bootbox.alert({title:"错误提示", message:"邮箱验证码未发送成功."});
                        return false;
                    }
                });
            }
        </script>
    </head>
    <body>
        <input type="text" id="regname" placeholder="请输入邮箱">
        <button type="button" class="btn btn-primary col-3" onclick="doSendMail(this)">发送邮件</button>
    </body>
    </html>
    

    这段代码包含了整个HTML结构、jQuery引用以及您的JavaScript代码。请将此内容保存为.html文件并打开,看看问题是否得到解决。如果有任何疑问或需要进一步的帮助,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月2日

悬赏问题

  • ¥50 CCD工业视觉相机检测出现光边
  • ¥20 C++初高中竞赛题,devc++可以通过的
  • ¥60 二次元手游日常任务自动化代肝(相关搜索:自动化)
  • ¥15 mysql将查询的结果作为动态列名怎么实现
  • ¥50 python自动地图截图脚本
  • ¥20 瑞萨RA4M1芯片刷写为arduino r4 minima
  • ¥15 fastreport怎么判断当前页数
  • ¥15 Kylin-Desktop-V10-GFB-Release-JICAI_02- 2207-Build14-ARM64.iso有没有这个版本的系统啊
  • ¥15 能不能通过蓝牙将传感器数据传送到手机上
  • ¥20 100元python和数据科学实验项目