2013-07-12 6 views
0

'실제'오류는 콘솔이나 JsLint에서 나타나지 않습니다. 개인적으로 HTML에서 onclick을 사용하는 것을 선호하지만 디버깅의 일부로 $("#buttonID1").click()으로 전환했습니다. 나는이 코드가 무엇이 잘못되었는지 전혀 모른다. 라이브 여기 버전 DEMO자바 스크립트 코드는 오류없이 작동하지만 작동하지 않습니다.

입력 : Amazon_Laser_BobtheBodyBuilder_07-11-13.xls

예상 출력 : | - \ n | 아마존 \ n | 레이저 \ n | BobtheBodyBuilder \ n | 2013 년 7 월 7 일 \ n

실제 출력 : 전혀 없음!

JS

function emptyText() { 
    $('#textinput').val(''); 
    $('#textoutput').val(''); 
} 

$("#buttonID1").click(function(){ 
    var input = document.getElementById('textinput').value; 
    var lines = input.split('\n'); 
    var output = ''; 
    $.each(lines, function(key, line) { 
     var results = line.split(/[_\.]/); 
      if(results!==null && results.length!== 0) 
      { 
       var a = '|-\n| '+results[0]+'\n'; 
       var b = '| '+results[1]+'\n'; 
       var c = '| '+results[2]+'\n'; 
       var d = results[3]; 
       var e = '| '+results[4]+'\n'; 

       var date = d.split(/[\-]/); 
       var mm = date[0]; 
       var dd = date[1]; 
       var yy = date[2]; 
       var month = ''; 
       switch(mm){ 
        case "01": 
         month='Jan'; 
         break; 
        case "02": 
         month='Feb'; 
         break; 
        case "03": 
         month='Mar'; 


      break; 
       case "04": 
        month='Apr'; 
        break; 
       case "05": 
        month='May'; 
        break; 
       case "06": 
        month='June'; 
        break; 
       case "07": 
        month='Jul'; 
        break; 
       case "08": 
        month='Aug'; 
        break; 
       case "09": 
        month='Sep'; 
        break; 
       case "10": 
        month='Oct'; 
        break; 
       case "11": 
        month='Nov'; 
        break; 
       case "12": 
        month='Dec'; 
        break; 
       default: 
        break; 
      } 

      switch(yy){ 
       case "10": 
        yy='2010'; 
        break; 
       case "11": 
        yy='2011'; 
        break; 
       case "12": 
        yy='2012'; 
        break; 
       case "13": 
        yy='2013'; 
        break; 
       default: 
        break; 
      } 

      var date2 = '| '+month+' '+dd+', '+yy+'\n'; 
      output += a+b+c+date2+e; 
     } 
}); 
}); 

HTML

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>title</title> 
    <link rel=href="https://dl.dropboxusercontent.com/u/101322542/Public%20Codes/mister%20table/Part%202%20-%20tokenizer/tokenizer.css" /> 

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script> 
    <script src="https://dl.dropboxusercontent.com/u/101322542/Public%20Codes/mister%20table/Part%202%20-%20tokenizer/tokenizer.js" type="text/javascript"></script> 
</head> 
<body> 
    <p class="left">Put your variables here:</p> 
    <textarea rows="4" cols="40" id="textinput"> 
</textarea> 
    <br> 
    <button type="button" id="buttonID1">AutoType</button> 
    <button type="button" id="buttonID2" onclick="emptyText()">Clear</button> 
    <p class="right">Output:</p> 
    <textarea rows="4" cols="40" id="textoutput"> 
</textarea> 
</body> 
</html> 

CSS

#textinput{ 
    background-color:#285c00; 
    color:white; 
} 

#textoutput{ 
    background-color:#285c00; 
    color:white; 
} 
+3

파일

output += a+b+c+date2+e; 

자바 스크립트에서이 줄 끝에서

document.getElementById('textoutput').value = output; 

: 그래서, 기본적으로,이 선을 잊으 셨나요? 어떤 출력이 오류의 범위를 좁힐 것으로 예상되는지 알 수있는 곳에서 console.log를 삽입하십시오. – Femaref

+0

HTML에서 onclick을 사용할 때 효과가 있었다면 Javascript를 문서 준비 수신기에서 래핑하지 않았을 수 있습니다. – mash

+0

혹시 한 종류의 배열이나 다른 배열을 사용하는 것에 대해 생각해 본 적이 있습니까? –

답변

3

당신은 빌드 문자열을 사용하는 것을 잊었다. 함수의 끝 부분이 추가 :

$('#textoutput').val(output); 

Demonstration


그것은 핵심 문제가되지 않습니다하지만 당신은 몇 가지 장소에서 코드를 조금 더 간단 할 수있다.

는 예를 들어,이 블록

switch(yy){ 
    case "10": 
     yy='2010'; 
     break; 
    case "11": 
     yy='2011'; 
     break; 
    case "12": 
     yy='2012'; 
     break; 
    case "13": 
     yy='2013'; 
     break; 
    default: 
     break; 
} 

yy = parseInt(yy, 10); 
if (yy<100) yy+=2000; 

(이 숫자를 처리하기 위해 적절한 숫자를하게 대체 할 수있는, 당신은 후 ''+yy를 사용하여 다시 문자열을 만들 수 있습니다 당신이 원한다면).

+0

에 대해 yy, 일부는 12이고 일부는 2012입니다 (입력이 섞여서), 그래서 스위치 케이스를 사용했습니다. – hexicle

+2

'달 = [ " , "Jan", "Feb", "Mar", "Apr"/*,...*/] [parseInt (mm, 10)]; – Christoph

2

마지막 줄을;

output += a+b+c+date2+e; 
$('#textoutput').val(output); 
1

실제로 버튼을 사용하여 텍스트를 추가해야합니다. 당신이 그것을 디버깅나요

관련 문제