我认为if (elem.changed == 'true')
现在与IE不兼容,因为我们对服务器进行了更新,现在我们在没有兼容模式的情况下工作,因为elem.change
现在是“未定义”,所以此功能无效。我可以用一种不必修改代码的方式做什么选择?
function gravatabela(numRegs, dia) {
var params = '';
url = '';
for (k = 0; k < numRegs; k++) {
url = '';
vSend = true;
elem = document.getElementById("tr" + k);
if (elem.changed == 'true') {
inputs = elem.getElementsByTagName("select");
params = '?LINEID=' + k;
for (var i = 0; i < inputs.length; i++) {
if (inputs[i]) {
params += '&' + inputs[i].name + '=' + inputs[i].value;
}
}
inputs = elem.getElementsByTagName("span");
for (var i = 0; i < inputs.length; i++) {
if (inputs[i]) {
params += '&' + inputs[i].name + '=' + inputs[i].innerText;
}
}
inputs = elem.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
if (inputs[i]) {
if (inputs[i].type == "checkbox") {
//alert(i);
params += '&' + inputs[i].name + '=' + (inputs[i].checked ? "1" : "0");
//alert(params);
} else {
if (inputs[i].juntadia) {
if (inputs[i].value && inputs[i].value != '') {
if (inputs[i].length == 0 || validaHorasStr(inputs[i].value))
params += '&' + inputs[i].name + '=' + inputs[i].juntadia + ' ' + inputs[i].value + ':00';
else {
vCampo = '';
if (inputs[i].name == "EFEC_ENT")
vCampo = 'Hora de entrada (efectiva)';
if (inputs[i].name == "EFEC_SAI_ALM")
vCampo = 'Hora de saida para almoço (efectiva)';
if (inputs[i].name == "EFEC_REG_ALM")
vCampo = 'Hora de regresso de almoço (efectiva)';
if (inputs[i].name == "EFEC_SAIDA")
vCampo = 'Data de saída (efectiva)';
updatepage(k + '$KO$Erro nos dados a enviar: o campo ' + vCampo + ' não está correcto.');
vSend = false;
}
} else
params += '&' + inputs[i].name + '=';
//alert(inputs[i].juntadia + ' ' + inputs[i].value + ':00');
} else
params += '&' + inputs[i].name + '=' + inputs[i].value;
}
}
}
if (vSend) {
url = 'grupo4_pantalla6_upd.jsp' + params;
//alert(url);
xmlhttpPost(url);
}
//alert(url);
}
}
}
答案 0 :(得分:0)
我认为您可以在HTML中使用onChange
事件:
<select onchange="myFunction()">
即使如此,jQuery也与所有浏览器兼容。