gpt4 book ai didi

php - 如果用户未登录,如何阻止 HTML 表单提交,但如果用户已登录,如何允许提交?

转载 作者:行者123 更新时间:2023-11-29 20:22:18 25 4
gpt4 key购买 nike

在我的应用中,用户必须登录才能提交表单信息。

用户单击表单提交按钮后,我的 jQuery 会检查用户是否已登录。

如果未登录,则会弹出一条错误消息,请求登录/注册。我现在可以成功停止默认操作(提交)。

但是,如果用户已经登录,我该如何允许默认操作?使用我当前的代码,如果用户已登录,默认操作也会被阻止。

这是我的代码:

jQuery('.member-only').click(function(event) {
var $element = jQuery(this);
var SignedIn;

jQuery.ajax({
type: 'POST',
url: '/ajax/member',
dataType: 'json',
success: function(data) {
var $err = jQuery('<div></div>')
.addClass('member-check')
.html(data.msg)
.css('left', $element.position().left);
SignedIn = data.SignedIn;

if (!(data.SignedIn)) { // not signed in
$element.after($err);
$err.fadeIn('slow');
return false;
}
}
});

jQuery('.member-check').live('click', function() {
jQuery(this).fadeOut('slow', function() {jQuery(this).remove(); });
});

if (!SignedIn) {
event.preventDefault();
event.stopImmediatePropagation();
return false; // block default submit
}
});

谢谢。

最佳答案

您需要让您的 JS 函数 return false; 来阻止事件的默认操作。

但是,这不包括禁用 JS 或能够欺骗它的用户。所以你也应该在服务器端优雅地处理这个问题:)


更新:根据您的更新,请添加

alert(typeof Signedin);
alert(Signedin);

就在 if(!Signedin) 之前并说明两种情况下您得到了什么。它可能是错误的类型和/或值,导致您总是输入 if block ,因此总是返回 false。

例如,undefined 类型将始终导致 !Signedin 评估为 true。您希望它始终是 boolean 类型,值为 truefalse

关于php - 如果用户未登录,如何阻止 HTML 表单提交,但如果用户已登录,如何允许提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3377052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com