ASP.NET mvc检测客户端更改

本文关键字:客户端 检测 NET mvc ASP | 更新日期: 2023-09-27 18:14:31

在我的应用程序中,我希望客户在没有更改特定表单中的值时不按提交。我可以在服务器端执行此操作,并向modelstate添加viewmodelerror。但是有没有一种方法可以用javascript在客户端做到这一点呢?

ASP.NET mvc检测客户端更改

如果表单被编辑,你可以设置一个javascript变量。一种简单的方法是监听输入字段上的change事件:

var isChanged = false;
$('input,select,textarea').change(function() {
  isChanged = true;
});

然后在提交前检查isChanged

这种方法不处理将值更改回原始值的问题。

如果你需要解决这个问题,你需要将表单状态保存在一个javascript对象中,并与之进行比较。

你可以添加这个来避免用户在表单发生变化时离开页面:

$(window).bind('beforeunload', function() { 
  if (isChanged) {
    return 'You have changed the form, are you sure?';
  } else {
    return undefined;
  }
});

不知道你在问什么?您是在谈论客户端验证吗?在这种情况下,你可以使用MVC验证或javascript库,如jquery和使用验证插件

客户端应该改变什么?

如果,例如。它只是一个文本字段的值,你可以将原始值保存在文档准备好的jquery事件中,当点击提交按钮时,运行一个javascript函数来检查值是否发生了变化。

如果你有更复杂的输入字段,你仍然可以使用这个机制来保存原始的,并通过javascript检查提交