2013-11-28 2 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, ""]; 
    } 
} 

사전에

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'와 비교하면 ...) – 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); 
        } 
        } 
       ] 
}, 

당신의 예에서

Job_Number

라는 이름의 컬럼에 대한

$('input#Job_Number') 

참조 편집 가능한 입력 타입, 당신은

$('input#confirmaSenha') 

로 시도해보십시오을 confirmaSenha를 참조 할 수 있어야한다 방화 광케이블 (firebug) 또는 유사하게 입력 요소의 id가 무엇인지 확인하십시오. 또한 하나 이상의 행을 편집 할 수있는 경우 어떻게되는지 고려해 볼 수 있습니다. 여러 행이 동시에 편집 할 경우이 선택

$('input#confirmaSenha') 

난 당신이 기대하고 생각하는 것보다 더 많은 요소를 줄 것이다. 더 좋은 방법은 문제의 행을 직접 참조하는 것입니다.하지만 유감스럽게도 사용자 지정 유효성 검사기 기능을 통해 유효성 검사 입력이나 행에 대한 참조가 실제로 없으므로 이러한 상황에서는 어렵습니다. 이 문제가 발생하면 한 번에 여러 행의 편집을 사용하지 않도록 설정하거나 입력이있는 행을 확인하는 방법을 찾아야합니다.

+0

ok를 보여주기 위해 글을 편집했다. 나는 html에서 그들의 이름을 찾았고 함수는 지금 작동하고있다. 어떻게 에러 메시지를 커스터마이징 할 수 있는가? 나는 "Passwords do not match."같은 것을 보여주고 싶습니다. – lucasdc

+1

return [false, "암호가 일치하지 않습니다"]; – Sumit