Javascript 如何防止剑道网格中的页面更改

Javascript 如何防止剑道网格中的页面更改,javascript,jquery,asp.net-mvc,kendo-ui,grid,Javascript,Jquery,Asp.net Mvc,Kendo Ui,Grid,我试图验证剑道网格列中的空输入。我想先验证当前页面,然后才能转到其他页面。我的问题是,当我得到空输入时,我无法阻止页面更改 $(function () { bindPaging(); }); function bindPaging() { var grid = $('#paramsGrid').data('kendoGrid'); var pager = grid.pager; pager.bind('change', onPageChang

我试图验证剑道网格列中的空输入。我想先验证当前页面,然后才能转到其他页面。我的问题是,当我得到空输入时,我无法阻止页面更改

$(function () {       
    bindPaging();        
});


function bindPaging() {
  var grid = $('#paramsGrid').data('kendoGrid');
  var pager = grid.pager;
  pager.bind('change', onPageChange);
}


function onPageChange(e) {
    var empty = $("#paramsGrid").find("input").filter(function () {
        return this.value === "" || this.value === "null";
    });
    if (empty && empty.length) {
        for (var i = 0; i < empty.length; i++) {
            $("#" + empty[i].id).addClass("input-validation-error");
        }
        e.preventDefault();        
    }   

}
$(函数(){
bindPaging();
});
函数bindPaging(){
var grid=$('#paramsGrid')。数据('kendoGrid');
var pager=grid.pager;
pager.bind('change',onPageChange);
}
功能页更改(e){
var empty=$(“#paramsGrid”).find(“input”).filter(函数(){
返回this.value==“| | this.value==“null”;
});
if(空(&empty.length){
对于(变量i=0;i

“e.preventDefault”不起作用。

尝试编写
e.preventDefault()作为函数的第一行

function onPageChange(e) {
    e.preventDefault(); // Pull this line as a first line of code in the function.
    var empty = $("#paramsGrid").find("input").filter(function () {
        return this.value === "" || this.value === "null";
    });
    if (empty && empty.length) {
        for (var i = 0; i < empty.length; i++) {
            $("#" + empty[i].id).addClass("input-validation-error");
        }        
    }   

}
页面更改功能(e){
e、 preventDefault();//将此行作为函数中的第一行代码。
var empty=$(“#paramsGrid”).find(“input”).filter(函数(){
返回this.value==“| | this.value==“null”;
});
if(空(&empty.length){
对于(变量i=0;i
我终于找到了解决方案。事件必须是“页面更改”而不是“更改”。这是正确的代码:

pager.bind('pageChange',onPageChange)

而不是:


pager.bind('change',onPageChange)

或者您可以使用网格的事件

当用户要通过寻呼机UI更改数据源的当前页面索引时激发

事件处理程序函数上下文(通过this关键字提供)将设置为小部件实例


这是一个很好的发现,尽管它似乎没有出现在-使用网格的
页面
事件可能更安全,这是官方支持的
function bindPaging() {
  var grid = $('#paramsGrid').data('kendoGrid');
  grid.bind('page', onPageChange);
}