我想做一件简单的事情:我想比较来自输入的两个字段的数据。我的意思是:用户将使用他的密码填写一个字段,并且将有另一个字段要求他再次填写他的密码。我想比较这两个数据,看它们是否匹配..我的问题是我不知道如何从确认字段中检索数据来比较它。代码的相关部分在这里(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, ""];
}
}
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 :(得分: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
的列的可编辑输入类型在您的示例中,您应该能够将confirmmaSenha引用为
$('input#confirmaSenha')
尝试使用firebug或类似的东西来查看输入元素的id是什么。 此外,您可能想要考虑如果可以编辑多行,会发生什么。 如果多个行可同时编辑此选择器
$('input#confirmaSenha')
会给你比我想象中更多的元素。 一个更好的选择是直接引用有问题的行,但不幸的是,在这种情况下很难做到这一点,因为您实际上并没有通过自定义验证器函数引用验证输入或其行。 如果这对您来说是一个问题,您应该考虑一次禁用多行的编辑,或者找出确定输入存在哪一行的方法。