2017-07-26 194 views
0

我认为if (elem.changed == 'true')现在与IE不兼容,因为自从我们更新了我们的服务器,现在我们在没有兼容模式的情况下工作,此功能无法正常工作,因为elem.change现在是“未定义”。我可以做什么选项,我不必修改我的代码很多?替代toif(elem.changed =='true')

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

@MilanChheda对不起,但我不认为这是一个好主意,在问题中对代码风格进行批发修订,除非存在实际问题,例如不使用四个前导空格来触发代码格式。我同意你的看法,同一行上的花括号是一种改进,但我不同意将缩进缩小到两个空格是一种改进。你也没有解决其他更重要的风格问题,比如在“if”的一个分支中使用花括号,而在另一个分支中没有花括号。 –

+0

如果您认为代码格式更改可以改进问题中的代码,则最好将您的建议更改作为答案发布。 (是的,可以发布一个实际上不回答具体问题的“答案”,但建议可以改进代码的其他方式)。通过发布您的更改作为答案,OP和其他读者将能够比较原创风格与您的建议,并看看你是如何改善了代码。那么您是否应该考虑恢复您的修改并将您的建议发布为答案?如果你愿意,我会给你一个满意的答复。 ;-) –

+0

当然@MichaelGeary。我将在今后的编辑中考虑你的观点。在这种特殊情况下,代码没有风格,并且不可读。因此,我只是使用了“Tidy”并使其风格化。 –

回答

0

我认为你可以在HTML中使用onChange事件是这样的:

<select onchange="myFunction()">

即使如此jQuery是所有浏览器兼容。

+0

这是那里的函数被调用,以html:

\t \t \t \t \t \t Enviar \t \t \t \t \t
\t \t \t \t <%}其他{%> \t \t \t \t \t Nãose podem alterar registos anteriores ao dia 16 doíltimomês。 \t \t \t \t <% } %> – Pbatista