我想制作一个通用表单验证脚本,在其中将表单的现有数据与提交的数据进行比较。如果提交的数据与页面加载时存在的数据不同,则验证将失败。
问题是如果一个人有多个表单,并且想要验证一个表单的现有数据。这是一个似乎非常接近工作但仍然不是的 JSFiddle:http: //jsfiddle.net/aMUNh/33/
我认为这个 JSFiddle 的问题在于$.each(function)
设置existingData
JSON 对象。
HTML:
<form id="form1">
<input name='form1name1' value='form1value1'>
<input name='form1name2' value='form1value2'>
<input id="1" type="submit" value='submit'>
</form>
<form id="form2">
<input name='form2name1' value='form2value1'>
<input name='form2name2' value='form2value2'>
<input id="2" type="submit" value='submit'>
</form>
JS:
var existingData={}; //declaring the object to be cached
$("form").each(function(index){
existingData.id+=this.id;
existingData.id.data+=$(this).serialize();
});
var id='form1';
document.write('existingData:'+existingData.id.data);
$('input [type=submit]').click(function(){
var id='form'+this.id;
var submittedData=$(this.form).serialize();
if(submittedData==existingData.id.data){
console.log('nothing changed');
}
else console.log('this form changed');
});