该代码不是完整的atm,但演示了我正在尝试做的事情。在我的脚本中,我有一个jQuery函数,当页面首次加载到数组“ defaultValues”中时,该函数存储所有文本区域的默认值。当执行“单击功能”并且想法是在“ CheckTextChange”功能中使用数组“ defaultValues”并检查anny项目是否与“ currentVal”不匹配时。如果currentVal具有另一个值,则进行文本更改和CheckTextChange我想知道如何在CheckTextChange中访问“ defaultValues []”,以及如何在if语句中使用defaultValues []来检查天气项目是否与currentVal不匹配?

HTML:

<h3>Text1...</h3>
<textarea class="txt">Hejsan</textarea><br/><br />

<h3>Text2...</h3>
<textarea class="txt">Hejdå</textarea><br/><br />

<h3>Text3...</h3>
<textarea class="txt">Hejsan</textarea><br/><br />

<input id="btnClick" type="button" value="Save" />


脚本:

$('#btnClick').on("click", function () {
    if (CheckTextChange()) {
        alert('TRUE');
    } else {
        alert('FALSE');
    }
})

var defaultValues = [];
    $(document).ready(function(){
        $('.txt').each(function () {
            var defValue = $(this).get(0).defaultValue;
            defaultValues.push(defValue);
              var v = defaultValues[0];
        });
    });


function CheckTextChange() {;
    var isChanged = false;
    $('.txt').each(function () {
        var currentVal = $(this).val();

        //Check if anny item in defaultVaules[] match currentVal
        if (currentVal != previousVal) {
            isChanged = true;
        }
    });

    return isChanged;
}

最佳答案

您可以将默认值另存为数据属性...

$(document).ready(function() {
    $(".txt").each(function() {
        $(this).attr("data-deftxt", $(this).val());
    });
});

$('#btnClick').on("click", function() {
    if (CheckTextChange()) {
        alert('TRUE');
    } else {
        alert('FALSE');
    }
})

function CheckTextChange() {;
    var isChanged = false;
    $('.txt').each(function() {
        var currentVal = $(this).val();
        if ($(this).val() !== $(this).data("deftxt")) {
            isChanged = true;
        }
    });

    return isChanged;
}

09-12 07:36