使用jQuery检测新的按钮和文本框。

问题描述 投票:0回答:1

我试图为未保存的数据创建一个导航警告,但我遇到了麻烦,因为我试图检查的页面会清除单选按钮。 该页面清除单选按钮的方式是通过删除单选按钮并添加新的按钮。 我不知道如何使用jQuery来检测。 我已经有一些代码可以检测文本框的变化,它可以检测单选按钮是否改变了状态,但当它们被清除时,它就不工作了。 这是我的jQuery。

var warnMessage = "You have unsaved changes on this page!";

$(document).ready(function() {

$('input:not(:button,:submit),textarea,select,:disabled').change(function () {
    window.onbeforeunload = function () {
        if (warnMessage != null) return warnMessage;
    }
});

  $('input:submit').click(function(e) {
      warnMessage = null;
  });

});

有没有办法检测页面中是否使用了document.add?

jquery document-ready
1个回答
0
投票

你应该使用 .on() 功能 (http:/api.jquery.comon。)的方式。

var warnMessage = "You have unsaved changes on this page!";

$(document).ready(function() {

    $(document).on('change', 'input:not(:button,:submit),textarea,select,:disabled', function () {
        window.onbeforeunload = function () {
            if (warnMessage != null) return warnMessage;
        }
    });

    $(document).on('click', 'input:submit', function(e) {
        warnMessage = null;
    });
});

注意以下几点。

  1. 你需要用 $ 父元素(即整个文档),其中包含了你想检测到更改点击的元素。只有在 .on 你可以通过函数指定这些元素。
  2. 函数 .on() 仅在jQuery>=1.7中可用:如果你有一个较低的版本(但大于1.3),你应该用 .live() 功能 (http:/api.jquery.comlive。).
© www.soinside.com 2019 - 2024. All rights reserved.