2015-01-11 4 views
0

비행기 좌석 맵 생성기를 사용하려고합니다. 그것이하는 일은 정말로 간단합니다. 첫 번째, 비즈니스 및 경제에 대한 승객을 HTML 입력에 삽입합니다. 자동으로 차트가 나타납니다. 이 작품은 자바 스크립트에 의해 수행됩니다. 나는 그것을 실행하려고하지만 뭔가 잘못되고있다. 그것은 단지 작동하지 않습니다. 그것은 당신이 그 아래에 숫자 7을 넣어야하는 테이블을 보여줍니다. 내가 자바 스크립트를 놓치기 때문에 그 일이 일어난 것 같아. 입력 내용을 채울 때 아무 일도 일어나지 않습니다.비행기 좌석 차트 만들기

쉽게 jsfiddle에 코드를 추가하십시오. http://jsfiddle.net/g4kzo4fo/

여기에 코드를 붙여야하므로 내 자바 스크립트가 있습니다. 문제가 여기 어딘가에 있다고 생각합니다.

makeRequest(request, id, false); 

    $('#'+id).dialog({ width: 'auto', height: 'auto', modal: true, resizable: false }); 
    $('#'+id).dialog('open'); 
} 

var AircraftConfigCheck = { 
    capacity : 200, 
    business : 0, 
    economy: 0, 
    first:  0, 
    businessFree : 0, 
    economyFree : 0, 
    firstFree: 0, 

    total : function() { 
     return (parseInt(this.business) || 0) * 2 + (parseInt(this.economy) || 0) + (parseInt(this.first) || 0) * 4; 
    }, 

    checkBusiness : function() { 
     if(this.total() > this.capacity) { 
      this.business = Math.floor((this.capacity - this.economy - this.first * 4)/2); 
     } 
    }, 

    checkEconomy : function() { 
     if(this.total() > this.capacity) { 
      this.economy = this.capacity - this.business * 2 - this.first * 4; 
     } 
    }, 

    checkFirst : function() { 
     if(this.total() > this.capacity) { 
      this.first = Math.floor((this.capacity - this.economy - this.business * 2)/4); 
     } 
    }, 

    updateCapacity : function() { 
     this.businessFree = Math.max(0, Math.floor((this.capacity - this.total())/2)); 
     this.firstFree = Math.max(0, Math.floor((this.capacity - this.total())/4)); 
     this.economyFree = Math.max(0, this.capacity - this.total()); 
    }, 

    setValues : function() { 
     $("#business").val(this.business); 
     $("#economy").val(this.economy); 
     $("#first").val(this.first); 
     $("#businessFree").html(this.businessFree); 
     $("#economyFree").html(this.economyFree); 
     $("#firstFree").html(this.firstFree); 
     /*$("#first").val(this.total()); */ 
     this.render(); 
    }, 

    render : function() { 
     makeRequest('http://www.fsairlines.net/crewcenter/aircraft_config_ajax.php5?max_pax='+this.capacity+ 
      '&first_seats='+this.first+ 
      '&business_seats='+this.business+ 
      '&economy_seats='+this.economy, 
      'aircraft', 
      true 
     ); 
    } 
} 

$(function() { 
    $(".seatInput").keyup(function() { 
     switch($(this).attr("id")) { 
      case "economy": 
       AircraftConfigCheck.economy = $("#economy").val(); 
       AircraftConfigCheck.checkEconomy(); 
       AircraftConfigCheck.updateCapacity(); 
       AircraftConfigCheck.setValues(); 
       break; 

      case "business": 
       AircraftConfigCheck.business = $("#business").val(); 
       AircraftConfigCheck.checkBusiness(); 
       AircraftConfigCheck.updateCapacity(); 
       AircraftConfigCheck.setValues(); 
       break; 

      case "first": 
       AircraftConfigCheck.first = $("#first").val(); 
       AircraftConfigCheck.checkFirst(); 
       AircraftConfigCheck.updateCapacity(); 
       AircraftConfigCheck.setValues(); 
       break; 
     } 
    }); 
}); 

미리 감사드립니다.

최신 업데이트 :http://jsfiddle.net/g4kzo4fo/4/

+0

7
vals

+0

@vals 그게 무슨 뜻인가요? 이것은 자바 스크립트에 대한 요청의 결과입니다. – carlosremove

+0

숫자 7이 내가 말한 HTML에 있습니다. – vals

답변

2

당신은 왜이 실행되지되는 코드에서 꽤 많은 구문 오류가 있습니다. makeRequest() 기능은 그래서 존재하지 않는

makeRequest(request, id, false); 

    $('#'+id).dialog({ width: 'auto', height: 'auto', modal: true, resizable: false }); 
    $('#'+id).dialog('open'); 
} 

당신이 그것을 호출 할 수 없습니다 :

코드의이 부분은 이해가되지 않습니다. 그리고이 블록의 끝에는 외부인 }이 있습니다.

그런 다음 나중에 렌더링 함수 내에서 makeRequest()을 다시 호출하려고 시도하지만 존재하지 않습니다. 방금 작성한 모든 자바 스크립트 코드를 실행할 때 당신이해야


맨 처음 것은 오류 브라우저에서 오류 콘솔 또는 디버그 콘솔을 확인하는 것입니다. 그런 다음 무언가가 제대로 작동하지 않을 때마다 콘솔을 다시 확인하십시오. 그런 다음 코드를 테스트 할 때 오류 콘솔을 다시 확인하십시오.

+0

새 코드보기 http://jsfiddle.net/g4kzo4fo/2/ 더 많은 문제가 있습니다. – carlosremove

+1

@carlosremove - 제발 내 제안을 듣고 브라우저의 오류를 확인하십시오. 콘솔에보고하고보고 한 오류를 확인한 다음 오류를 수정하십시오. 최신 코드에 오류가 계속 표시됩니다. 우리는 여러분 자신의 코드를 수정하는 방법을 알려주고 있습니다. – jfriend00

+0

글쎄, 지금은 '잡히지 형식 오류 : 속성'을 읽을 수 없습니다 'appendChild'의 null입니다. 하지만 왜? 'mainText'가'null'이기 때문에 여기에 붙어 있습니다 http://jsfiddle.net/g4kzo4fo/4/ – carlosremove