在选择框中将default.value与this.value进行比较

时间:2015-11-24 13:45:02

标签: jquery html

我用它来捕获现有html报告的任何变化(交互式)

    $("html").on("change","input[type='text'], input[type='date'], input[type='time']", function() {
        isDirty = (this.defaultValue !== this.value);
        if (isDirty)
            this.defaultValue = this.value;
    });

这将检查报告中使用的任何输入类型的更改。

但是如何在选择框之前做类似的事情呢?

2 个答案:

答案 0 :(得分:0)

此处 - 使用option defaultSelected

$("html").on("change","select", function() {
    var opt = $("option:selected",this)
    var isDirty = !opt.get(0).defaultSelected;
});

或者设置属性onload:

$(function() {
  $("select").each(function() {
    $(this).data("defaultValue",this.value);
  });
});

以后

  isDirty = (this.type=="select")?
     $(this).data("defaultValue")!=this.value:this.defaultValue !== this.value;

答案 1 :(得分:-1)

获取选择选项的值最好通过以下方式完成:

this.defaultValue = $("select option:selected").text();

所以你的功能将是:

$("html").on("change","option", function() {
    var value = $("select option:selected").text();
    isDirty = (this.defaultSelect !== value);
    if (isDirty)
        this.defaultSelect = value;
});