jqGrid - 密码确认

Posted

技术标签:

【中文标题】jqGrid - 密码确认【英文标题】:jqGrid - Password confirmation 【发布时间】:2013-11-28 11:47:30 【问题描述】:

我想做一件简单的事情:我想比较输入时两个字段的数据。我的意思是:用户将用他的密码填写一个字段,并且会有另一个字段要求他再次填写他的密码。我想比较这两个数据,看看它们是否匹配。我的问题是我不知道如何从确认字段中检索数据进行比较。相关部分代码在这里(confirmaSenha是确认字段):

name:'senha', width:80, sortable:true, editable: true, hidden:true, edittype:'password', editrules:edithidden:true, required:true, custom:true, custom_func:validaSenha,
name:'confirmaSenha', width:80, sortable:true, editable: true, hidden:true, edittype:'password', editrules:edithidden:true, required:true,

function validaSenha(value, colname)               
    if (colname=='senha' && value == HOW_DO_I_GET_DATA_FROM_CONFIRMATION_FIELD?) 
        return [true, ""];
    
    else 
        return [false, ""];
    

已编辑

if ((colname == 'senha') && (value == $('#tr_confirmaSenha').val())) 
        alert('true');
        return [true, ""];
    
    else           
        var senha = $("#tr_confirmaSenha").val();                
        alert(senha);
        $("td.editmsg", 'FrmGrid_grid').html("Senhas diferentes.");
        return [false, ""];
    

提前致谢。

【问题讨论】:

顺便说一句,FALSE 是什么? (与false...相比) 我现在将其编辑为“假”。现在仍然知道如何从字段中检索数据... 使用确认字段名称的 JQuery $('class or id') 并将其与该名称进行比较。我会将行 ID 添加为 data-toconfirm="idofsamerow+somename" 并使用该逻辑来检索任何内容。 我试着按照你说的做,但是 .val() 显示的是一个空字符串。我编辑了帖子以向您展示我的代码 【参考方案1】:

根据讨论部分的第一篇文章 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules

您可以通过名称引用实际的输入框。 在他的示例中,他引用了 editOptions 的 dataevents 选项中的输入,但我认为您应该能够在自定义验证器中执行相同的操作。

editoptions:  size: 1,
               dataUrl: 'Includes/tblJobSelect.php',
               dataEvents: [
                    type: 'change',
                     fn: function(e) 
                        $('input#Job_Number').val(this.value);
                     
                  
               ]
,

这里

  $('input#Job_Number')

引用名为 Job_Number 的列的可编辑输入类型

在您的示例中,您应该能够将 ConfirmaSenha 引用为

  $('input#confirmaSenha')

尝试使用 firebug 或类似的东西来查看输入元素的 id 是什么。 此外,您可能需要考虑如果不止一行是可编辑的,会发生什么。 如果多行可同时编辑此选择器

  $('input#confirmaSenha')

会给你比我想象的更多的元素。 更好的选择是直接引用有问题的行,但不幸的是,在这种情况下很难做到这一点,因为您实际上并没有通过自定义验证器函数引用验证输入或其行。 如果这对您来说是个问题,您应该考虑一次禁用对多行的编辑,或者想办法确定输入存在于哪一行。

【讨论】:

ok.. 我在 html 上查找了他们的名字,并且该功能现在正在运行,但是.. 我如何自定义错误消息?我想显示“密码不匹配”之类的内容。 return [false, "密码不匹配"];

以上是关于jqGrid - 密码确认的主要内容,如果未能解决你的问题,请参考以下文章

验证密码和确认密码

在 PHP 中验证密码并确认密码

在PHP中验证密码和确认密码

如何在密码删除字符后,去除确认密码输入的字符?

设计没有密码确认的更新用户密码

vue确认密码