【问题标题】:Detect when a textbox changes value using jQuery使用 jQuery 检测文本框何时更改值
【发布时间】:2013-01-29 10:09:11
【问题描述】:

我的asp.net mvc 视图上有一个textarea 和两个按钮Save 和Cancel。我想检查用户是否在 textarea 中输入了某些内容,但没有单击保存并单击取消按钮。或单击保存按钮,然后更改文本,更改后未单击保存并单击取消。在取消点击时,我想显示警报,但我如何检查用户在使用 jquery 或 javascript 更改文本后是否没有点击保存(可能在 .change 事件或取消点击中)请建议

【问题讨论】:

标签: javascript jquery asp.net-mvc


【解决方案1】:

Javascript:

<script>
$(function() {
    $("#TextAreaName").change(function() {
        $(this).attr("data-changed", true);
    });

    $("#Save").click(function(event) {
        event.preventDefault();

        if ($("#TextAreaName").attr("data-changed") === "true") {
            //Do your saving here

            //Reset the state
            $("#TextAreaName").attr("data-changed", false);
        }
    });
});

剃刀标记

<body>
<div>
    @using (Html.BeginForm())
    {
        @Html.TextArea("TextAreaName", new{data_changed = false})

        <button id="Save" type="submit">Save</button>
        <button id="cancel" type="button">Cancel</button>
    }
</div>

【讨论】:

  • 我更喜欢 html5 数据属性选项,因为 DOM 中不需要额外的元素
【解决方案2】:

我会在HTML5 localStorage 中使用 onchange 事件

【讨论】:

    【解决方案3】:

    您可以有一个隐藏字段,当用户保存时设置为某个值,然后只需使用 jquery 或 javascript 检查隐藏字段的值...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 2013-10-31
      相关资源
      最近更新 更多