如何检查在asp.net页面上是否编辑了文本区域

how do you check if a textarea has been edited on an asp.net page?

本文关键字:是否 编辑 区域 文本 net 何检查 检查 asp      更新时间:2023-09-26

我有一个页面,有多个步骤来完成一个表单。在每一步中,加载一个不同的分部视图。第一步是文本框。他们可以回来编辑它在以后的日期,我希望它弹出一个窗口,询问他们是否要保存它,当他们去到不同的步骤没有保存他们所做的,但只有当他们已经编辑了什么是在文本框。有一个简单的方法来做到这一点使用javascript或什么?

您可以使用javascript检查文本框是否为"dirty"

可以在设置为0的页面上保留计数器变量。现在将onchange事件附加到文本框上。每次onchange事件触发时,递增计数器变量。现在,当用户导航到另一个页面时,检查计数器变量是否为0。如果为0,则文本框未被编辑,否则用户已编辑文本框。


更好的方法在页面加载(window.onload)时,将要监视的文本框的文本(textbox.value)存储在一个变量中。当用户导航到其他页面时,检查文本框的当前文本是否与变量的文本匹配,则文本框的值保持不变(但它可能被编辑了多次)
这是一种更好的方法,因为只有2个额外的javascript调用,一个在页面加载时,另一个在用户尝试页面导航时。在之前的方法中,每次文本框的文本发生变化时,都会有一个javascript调用(onchange事件和递增计数器变量)

如果您想检查该值从页面加载时是否发生了变化,您可以将当前值与defaultValue:

进行比较。
if (textArea.defaultValue != textArea.value) {
  // It's been edited
}

尝试dirtyField插件。下面是一些使用drityField的例子。