引自免费微信小程序:皆我百晓生
看起来您在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先于您使用它的任何脚本执行。
另一种可能的情况是,您在浏览器的控制台查看是否有任何其他的错误,这可能会提供一些额外的信息。
鉴于以上情况,您可以尝试以下步骤来解决这个问题:
- 确保已经正确引入了jQuery库。
- 检查浏览器控制台,看是否有其他错误信息。
- 如果问题依然存在,请确认您的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
文件并打开,看看问题是否得到解决。如果有任何疑问或需要进一步的帮助,请随时告诉我。