`

20080904--判断表单中的元素值是否改变了

阅读更多

使用场景:有些页面,除了保存之外还有一些别的按钮,在点击别的按钮之前,需要看用户是否有没有保存的表单域,如果有,则需要提示用户先保存,这时时候就要判断表单域中的内容是否改变了。

实现方式:Form中的每个对象都保留了初始值,所以可以在提交表单时,遍历Form中对象,
检查对象当前的值与初始值是否一致,就判断出了表单是否被修改了。

function IsFormChanged()
 {
    var isChanged = false;
    var form = document.forms[0];
    for (var i = 0; i < form.elements.length; i++)
    {
        var element = form.elements[i];
        var type    = element.type;
        if (type == "text" || type == "hidden" || type == "textarea" || type == "button")
        {
            if (element.value != element.defaultValue)
            {
                isChanged = true;
                break;
            }
        }
        else if (type == "radio" || type == "checkbox")
        {
            if (element.checked != element.defaultChecked)
            {
                isChanged = true;
                break;
            }
        }
        else if (type == "select-one")
        {
            for (var j = 0; j < element.options.length; j++)
            {
                if (element.options[j].selected != element.options[j].defaultSelected)
                {
                    isChanged = true;
                    break;
                }
            }
        }
        else
        {
            //
        }
    }

    return isChanged;
}

 

分享到:
评论
2 楼 lucien_zzy 2014-04-30  
IE下好像不管用,一直返回true
1 楼 longcxlt 2008-09-09  
IE和FF下面都好使吗?

相关推荐

    js 验证表单中的值是否改变

    当用户修改输入框的值时,事件处理函数会被调用,检查当前值是否与初始值不同,从而判断值是否发生改变。 然而,对于更复杂的表单,可能需要验证多个字段或整个表单的状态。这时可以创建一个函数来批量检查所有需要...

    jquery获取表单值

    **注意:** `.val()` 方法是用来获取或设置表单元素的值的,而 `.attr("value")` 是用来获取`value`属性的值。通常情况下,两者的效果是相同的,但在某些场景下,`.val()` 更加直观和常用。 ##### 2. 获取文本域(`...

    jquery-formChange:检查表单的元素是否已更改

    检查表单的元素是否真的从初始值改变了。 ##入门 包括 jquery.formChange.js 文件,然后将 formChange 应用到任何表单。 $ ( 'form' ) . formChange ( { hasChangedClass : 'has-changed' } ) ; $ ( 'form' )...

    js代码-js数组判断是否存在元素 includes() 方法

    - 验证用户输入:在表单验证中,可以使用`includes()`来检查用户输入的值是否存在于预定义的列表中。 - 数据过滤:在处理数据集时,可以筛选出包含或不包含特定值的数组子集。 - 错误处理:在异常处理中,可以使用`...

    jquery表单元素取值

    ### jQuery表单元素取值详解 #### 一、引言 在Web开发中,表单是用户与网站交互的重要组成部分。jQuery作为一种流行的JavaScript库,极大地简化了JavaScript编程,特别是DOM操作方面,使得开发者能够轻松地处理HTML...

    一款高效的Vue 3低代码表单、工作流表单,包含表单设计器和表单渲染器,可视化设计,一键生成源码

    表单设计器通常支持多种表单元素,如文本输入框、选择器、日期选择器、多级联动等,满足不同业务场景的需求。 表单渲染器则是将设计师创建的表单蓝图转化为实际运行的用户界面。它解析设计器输出的源码,根据预定义...

    C#实现表单提交(1) - 真功夫

    这通常涉及到定位表单元素(如输入框和提交按钮),设置其值,并触发提交动作。以下代码展示了这一过程: ```csharp HtmlElement btnSubmit = webBrowser.Document.All["submitbutton"]; HtmlElement tbUserid = ...

    微信小程序表单弹窗实例

    在微信小程序的JS代码中,可以通过事件对象获取到当前的表单值,并且通过设置data属性来存储这些值。然后可以通过逻辑判断和条件执行来处理这些数据,比如保存到本地、发送到服务器等。 最后,值得一提的是,在微信...

    javascript动态判断html元素并执行不同的操作.docx

    在这个例子中,`getmetalid` 函数负责接收触发事件的元素,并根据该元素的 `value` 属性值决定执行哪段逻辑。 ```javascript function getmetalid(input) { var metalid = input.parentNode.parentNode....

    页面离开时检查表单是否改变

    要实现"页面离开时检查表单是否改变"的功能,首先我们需要监听表单元素的变化。这可以通过使用JavaScript的`addEventListener`方法添加`input`或`change`事件来实现。每当用户修改表单元素时,我们记录下当前的状态...

    Vue v-for中的 input 或 select的值发生改变时触发事件操作

    当使用`v-for`与`input`或`select`元素结合时,我们常常需要监听这些表单元素的值变化,以便在值发生变化时执行相应的操作。本文将详细介绍如何在Vue中处理这种情况,并提供相关知识点。 1. **`v-on:input` 事件...

    表单兼容布局和正则验证

    使用rem可以确保页面元素的大小随着根元素的字体大小改变而自动调整,从而实现响应式设计。在移动端,我们通常会设置一个动态的基础字体大小,以便根据屏幕尺寸来调整所有元素的大小。例如,我们可以使用JavaScript...

    form表单拖拽功能

    这时可以使用事件委托,将事件监听器添加到父容器上,通过判断事件的目标元素来处理拖拽行为,避免为每个表单元素都添加单独的事件监听器,提高性能。 4. **防抖与节流**:在处理`mousemove`事件时,频繁的更新可能...

    jQuery电网分分步骤注册表单代码.zip

    - **事件监听**:使用jQuery的`.on()`方法可以方便地为表单元素添加事件监听器,如`click`事件,用于触发下一步或上一步的操作。 - **DOM操作**:jQuery提供了丰富的DOM操作方法,如`.hide()`和`.show()`,用于...

    javascript检查表单数据是否改变的方法

    这里提供的一种方法是通过遍历表单元素并比较当前值与初始值来判断是否发生了变化。下面我们将详细探讨这个方法。 首先,我们定义一个名为`formIsDirty`的函数,它接收一个参数`form`,即要检查的表单对象。函数...

    javascript经典特效---对选择的判断.rar

    【标题】"JavaScript经典特效——对选择的判断"主要涵盖了JavaScript在网页交互中的核心功能,即处理用户的选择和进行相应的判断。JavaScript是一种广泛应用于客户端Web开发的脚本语言,它赋予了网页动态交互的能力...

    js验证表单大全

    例如,`form.elements` 返回一个包含所有表单元素的集合,而 `validity` 属性则提供了关于元素是否有效的信息。 9. **防止重复提交** 为了防止用户多次点击提交按钮,可以用 JavaScript 设置一个标识或禁用按钮,...

    js提交表单及js表单验证

    -- 表单元素 --&gt; 提交 ``` #### 三、JS表单验证 ##### 1. 字符串长度限制验证 ```javascript function test() { if (document.a.b.value.length &gt; 50) { alert("超过50个字符"); document.a.b.focus(); ...

    jQuery带弹性的下拉表单、收起表单代码.rar

    可以使用`.val()`方法获取表单字段的值,并通过`.hasClass()`, `.addClass()`, `.removeClass()`等方法来控制表单状态的反馈,如高亮错误输入框或显示错误消息。 至于CSS,这个实例中可能会定义一些关键样式,比如...

    Notes&Domino授课教案:7-6 表单和搜索.ppt

    3. **在表单中使用Web元素**: 除了HTML,Notes & Domino还支持Web元素,比如JavaScript,可以进一步增强表单的功能。通过JavaScript,可以实现动态交互、表单验证、提交前的处理等。 4. **使用表单操作和热点**:...

Global site tag (gtag.js) - Google Analytics