在使用textareas之前,我已经完成了类似的案例。然而,与divs没有得到相同的结果。当检查“previousVal”时,我得到了未定义,很可能是因为我没有正确检查该值。因为这个isChanged总是返回True,即使没有对div进行文本更改。如何提取正确的数据以将previousval与currentVal进行比较。这个想法只是为了检查天气,并且已经对页面最后加载的div进行了文本更改。如果是,则isChange应该为true,否则为false。
HTML:
<h3>Handlartext1...</h3>
<div class="classA ClassB ClassC">Hello</div></textarea><br/><br />
<h3>Handlartext2...</h3>
<div class="classA ClassB ClassC">Bonjour</div></textarea><br/><br />
<h3>Handlartext3...</h3>
<div class="classA ClassB ClassC">Goddag</div></textarea><br/><br />
<input id="btnClick" type="button" value="Save and continue" />
脚本:
$('#btnClick').on("click", function () {
if (CheckTextChange()) {
alert('TRUE');
} else {
alert('FALSE');
}
})
function CheckTextChange() {
//Checks if values have changed in elements containing class="txt"
var isChanged = false;
$('.ClassC').each(function () {
var previousVal = $(this).get(0).defaultValue,
currentVal = $(this).text();
//alert( $(this).text()); //or $(this).text();
if (currentVal != previousVal) {
isChanged = true;
alert(previousVal + ' changed into ' + currentVal);
}
});
return isChanged;
}
答案 0 :(得分:0)
根据您的代码,我相信您需要一个文本框,在提交时会显示原始文件是否有任何更改。
这是我用来执行此操作的代码,以及下面的工作JSFiddle:
<强> HTML 强>
<h3>Handlartext1...</h3>
<div data-default="Hello" class="classA ClassB ClassC"><textarea>Hello</textarea><br/><br /></div>
<h3>Handlartext2...</h3>
<div data-default="Bonjour" class="classA ClassB ClassC"><textarea>Bonjour</textarea></div><br/><br />
<h3>Handlartext3...</h3>
<div data-default="Goddag" class="classA ClassB ClassC"><textarea>Goddag</textarea></div><br/><br />
<input id="btnClick" type="button" value="Save and continue" />
<强> JQuery的强>
$('#btnClick').on("click", function () {
if (CheckTextChange()) {
alert('TRUE');
} else {
alert('FALSE');
}
});
function CheckTextChange() {
//Checks if values have changed in elements containing class="txt"
var isChanged = false;
$('.ClassC').each(function () {
var previousVal = $(this).attr('data-default');
console.log(previousVal);
$textarea = $(this).find('textarea');
var currentVal = $textarea.val();
console.log(currentVal);
if (currentVal != previousVal) {
isChanged = true;
alert(previousVal + ' changed into ' + currentVal);
}
});
return isChanged;
};
答案 1 :(得分:-1)
您可以使用具有默认值的数据集标记div,然后您可以对其进行比较:
<h3>Handlartext1...</h3>
<div data-default-value="Hello" class="classA ClassB ClassC">Hello</div><br/><br />
我不知道你为什么需要</textarea>
所以我将其删除了。
然后在Javascript中:
var previousVal = $(this).dataset().defaultValue;
var currentVal = $(this).text();