2013-11-28 65 views
0

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

{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, ""]; 
    } 
} 

EDITED

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, ""]; 
    } 
} 

在此先感谢。

+0

另外,什么是'FALSE'? (与'false'相比...) – nnnnnn

+0

我现在编辑它为“false”。现在仍然知道如何从字段中检索数据... – lucasdc

+0

使用确认字段名称的JQuery $('class或id')并将其与之进行比较。我会将行ID添加为data-toconfirm =“idofsamerow + somename”,并使用该逻辑来检索任何内容。 –

回答

0

根据的 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') 

萤火虫或类似的东西,看看输入元素的ID是什么。 另外,您可能要考虑如果多行可编辑会发生什么情况。 如果多行可编辑在同一时间这个选择

$('input#confirmaSenha') 

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

+0

好的。我在html上查找了他们的名字,并且该函数正在工作,但是..我如何定制错误消息?我想展示“密码不匹配”之类的内容。 – lucasdc

+1

return [false,“密码不匹配”]; – Sumit