чуток доработал твой вариант.
function obz(keyfiledvalue,oldfiledvalue, obz1, obz2)
{
id_lines = [obz1, obz2];
if ((document.getElementById(keyfiledvalue).value != oldfiledvalue)&(oldfiledvalue!='')) {
for (i = 0; i < 2; i++) {
$("#field_edit" + id_lines[i] + " span").remove();
$("#main" + id_lines[i]).val(0);
$("#field_edit" + id_lines[i] + " b").first().before("<span style='color:red'>* </span");
$("#main" + id_lines[i]).val(1);
}
} else {
for (i = 0; i < 2; i++) {
$("#field_edit" + id_lines[i] + " span").remove();
$("#main" + id_lines[i]).val(0);
}
}
}
keyfiledvalue - ключевое поле, изменение которого отслеживаем (например 'value1331')
oldfiledvalue - предыдущее значение поля, получаем при загрузке документа например так
var oldfiledvalue = document.getElementById('value1331').value;
obz1, obz2 - id полей которые надо сделать обязательными
Теперь если нужно отслеживать изменение нескольких полей, не проставляется ** и более
я использую примерно так:
function onchange_{1411}()
{
display_fgroup(101, (document.getElementById('value1411').value!=datbornValue));
obz('value1411',datbornValue,'1341','1351');
}
$('#value{1411}').bind('change', onchange_{1411});
addHandler(document.getElementById("value1411"), "onchange", onchange_{1411});