2016-11-21 3 views
0

У меня есть веб-страница, которая включает функцию JavaScript для преобразования нескольких строк в данные, разделенные запятыми. Вот код:Функция JavaScript не меняет текстовое поле в Chrome и Firefox, но работает в IE

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset="utf-8"> 
 
<title>Add case</title> 
 
<script type="text/javascript"> 
 
     function replaceSeperator() { 
 
      var incident_box = document.getElementById("TextBoxIncidentID") 
 
      var content = incident_box.value; 
 
      //incident_box.innerHTML = content.replace(/\n/g, ","); 
 
      var ctt = content.replace(/\n/g, ","); 
 
      var lastchar = ctt.substr(ctt.length - 1); 
 
      if (lastchar != ",") { 
 
       incident_box.innerHTML = ctt; 
 
      } else { 
 
       incident_box.innerHTML = ctt.substr(0,ctt.length - 1); 
 
      } 
 
     } 
 
    </script> 
 
</head> 
 
<body> 
 
\t <textarea name="TextBoxIncidentID" rows="2" cols="20" id="TextBoxIncidentID" textwrapping="Wrap" acceptreturn="true" onmouseout="replaceSeperator()" style="font-family:Calibri;font-size:Medium;height:60px;width:430px;margin-top: 5px;"></textarea> 
 
</body> 
 
</html>

Он отлично работает в IE: The line break replaced to comma

Но это не работает, как ожидалось в Chrome и Firefox: Line break replaced to comma at Dev Tool but it doesn't present on Chrome

Значит ли кто-нибудь знает, как это исправить? Благодаря

+0

использование 'value' Maan !! не innerHMTL –

ответ

0

value Недвижимость. innerHTML предназначен для других целей. Даже текстовое поле имеет закрывающий тег, внутреннее содержание значение текстового поля:

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<meta charset="utf-8"> 
 
<title>Add case</title> 
 
<script type="text/javascript"> 
 
     function replaceSeperator() { 
 
      var incident_box = document.getElementById("TextBoxIncidentID") 
 
      var content = incident_box.value; 
 
      //incident_box.innerHTML = content.replace(/\n/g, ","); 
 
      var ctt = content.replace(/\n/g, ","); 
 
      var lastchar = ctt.substr(ctt.length - 1); 
 
      if (lastchar != ",") { 
 
       incident_box.value = ctt; 
 
      } else { 
 
       incident_box.value = ctt.substr(0,ctt.length - 1); 
 
      } 
 
     } 
 
    </script> 
 
</head> 
 
<body> 
 
\t <textarea name="TextBoxIncidentID" rows="2" cols="20" id="TextBoxIncidentID" textwrapping="Wrap" acceptreturn="true" onmouseout="replaceSeperator()" style="font-family:Calibri;font-size:Medium;height:60px;width:430px;margin-top: 5px;"></textarea> 
 
</body> 
 
</html>

+0

«ценность» работает! Спасибо огромное! – smallbone

-1

Вы пропускаете ; в конце

var incident_box = document.getElementById("TextBoxIncidentID") 

Некоторые браузеры более снисходительны к этому, чем другие.

Смежные вопросы