前言

昨天群里有人问typecho的文章密码保护功能,提示密码错误时怎么发出弹窗式提醒,而非跳转到错误提示页面,我就随后说了个ajax提交表单的方式,刚刚试了一下确实很可以的,代码如下。

代码

代码是基于JQ的哈,没有JQ可以自行引用下,或者将下方代码改为原生js代码

$(".protected").submit(function() {
var surl=$(".protected").attr("action");//表单地址
$.ajax({
                type: "POST",
                url:surl,
                data:$('.protected').serialize(),// 你的form
                async:true,
                error: function(request) {
alert("密码提交失败,请刷新页面重试!");//ajax提交失败报错
                },
                success: function(data) {
if(data.indexOf("密码错误") >= 0 && ((data.indexOf("<title>Error</title>") >= 0 && data.indexOf("<title>Error</title>") <= 100) || data.indexOf("Typecho_Widget_Exception") >= 0)) {
alert("密码错误,请重试!");//密码错误弹窗提醒
}else{
location.reload();//密码正确刷新页面
}
}
});
return false;
});

代码更新记录

2021年1月28日
密码判断部分优化,兼容typecho的debug模式,并且支持js代码写在行内。

2020年8月18日
发布第一版本。

版权属于:泽泽社长
本文链接:https://blog.zezeshe.com/archives/typecho-password-tixing.html
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!