2017-07-26 178 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