2013-11-28 66 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