你如何检查是否已在asp.net页面上编辑textarea?

时间:2011-07-27 20:24:28

标签: c# javascript asp.net forms

我有一个页面,其中包含完成表单的多个步骤。在每个步骤中,加载不同的局部视图。一步是文本框。他们可以在以后回来编辑它,我想让它弹出一个窗口,询问他们是否想要在不保存他们所做的事情的情况下进行不同步骤时保存它,但前提是他们已编辑了什么是在文本框中。有没有一种简单的方法可以使用javascript或其他东西?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

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


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

答案 2 :(得分:0)

如果要检查页面加载时的值是否有变化,可以将当前值与 defaultValue 进行比较:

if (textArea.defaultValue != textArea.value) {

  // It's been edited

}

答案 3 :(得分:0)

尝试dirtyField插件。 Here是使用drityField的一些示例。