javascript - 隐藏密码文本框并提交

标签 javascript jquery html

这是一个简单的密码检查功能,我弄乱了一点。我尝试了很多不同的方法(包括但不限于:.css()、.on('click')、.click()、.animate()、.show()、.hide()、 .preventDefault() 在提交时),将选择器放入变量中,移动各种 ID$('input[name="s"]') 等等各种选择器。不确定该功能是否不起作用,或者脚本中的其他内容。我已将函数从 $(document).ready() 树中取出,并将其移动到其中。我确定这不是现在的问题,但此时我开始不确定任何事情。

我正在尝试获取隐藏密码文本框和提交的功能(或者按钮更好?)并显示用于新闻输入的文本区域,以及一个用于附加更新的按钮。appendedTo 和 .append() 部分有效,但我似乎无法使用密码检查功能。有时它会在错误时提醒我,但当它正确时 if 方法似乎不起作用。然后我会更改它几次,警报将不再显示,if 也将不再起作用。

如有任何帮助,我将不胜感激,我可以应要求提供任何代码片段或代码块。

有问题的功能:

function passwordcheck() {
        var $newspass = $('#newspass');
        var $submitpass = $('#submitpass'); // <--- variables were at one point selectors
        var $newssubmit = $('#newssubmit');     //    written out, I've changed this a lot
        if ($newspass.val() === 'comecorrecT') {
                $submitpass.css('display', 'hidden');
                $newspass.css('display', 'hidden');
                $('#newsinput').css('display', 'block');
                $newssubmit.css('display', 'static');
        } else {
            alert("Try again, please.");

        }
    };

脚本的其余部分,供引用:

$(document).ready(function(){
// billboard functions
    var $billboard = $('.billboard');
    $billboard.mouseenter(function(){
        $(this).fadeTo('slow', 0.98);
        });
    $billboard.mouseleave(function(){
        $(this).fadeTo('slow', 0.72);
        });
    var $learn = $('#learn-more');
    $learn.hover(function(){
        $(this).fadeTo('slow', 1);
        }, 
    function() {
        $(this).fadeTo('slow', 0.6);
        });
// news and updates/appendedTo
    var $submitpass = $('#submitpass');
    var $newssubmit = $('#newssubmit');
    $submitpass.click(passwordcheck());
    $newssubmit.click(function(){
        $('#appendedTo').append('<div class="update">'+$('#newsinput').val()+'</div>');
// passwordcheck();
        });
    });

我已经使用它一段时间了,我知道你们会有一两个深刻的解释。

最佳答案

你现在这样做的方式,你只是传递“未定义”而不是一个函数(这将是 passwordcheck 函数返回的),因为你正在调用函数而不是在这一行中传递对它的引用:

$submitpass.click(passwordcheck());

应该是什么

$submitpass.click(passwordcheck);

在代码的最后一个 block 中,在

之后
// news and updates/appendedTo

也就是说,不要使用客户端 JavaScript 进行身份验证,您要检查的密码对使用该网站的任何人都是可见的。

关于javascript - 隐藏密码文本框并提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33645583/

相关文章:

javascript - NestJS:如何在自定义验证器中同时访问 Body 和 Param?

javascript - 自动建议键盘事件不适用于 keyup 事件

javascript - 加载时淡入背景图像

javascript - jquery fileDownload 插件 - 显示错误 'offsetParent is not set -- cannot scroll'

html - 垂直拉动 Bootstrap 网格元素

javascript - HTML/CSS 语句可以是 Javascript 条件吗?

javascript - 使用 require.js 加载时在 bootstrap 4 中加载 popper.js 时出错

javascript - 获取调用 JS 函数的 HTML 文档的名称

jQuery 多重条件帮助

html - Dreamweaver HTML 的 W3C 验证