2014-11-02 6 views
0

jQuery를 사용하여 스도쿠 게임을 구현하고 있습니다. 나는 논리의 대부분을 구축했다. (이 마지막 조각을 얻은 후에도 여전히 리팩터링을 계획하고있다. 게시판을 생성 할 때마다 붙어 있습니다. 특정 입력란을 비활성화하고 싶습니다. 여기에 내가 보드를 구축하기 위해 사용하고 코드의 섹션은 다음과 같습니다jQuery를 사용하여 입력 상자를 조건부로 사용 불능으로 설정

var context = this; 

$td = $('<td>') 
    .append($('<input>') 
    .data('row', i) 
    .data('col', j) 
    .data('region', region) 
    .val(function(){ 
     var prefillValue = easyGame[i][j]; 
     if(prefillValue !== -1){ 
      context.currentMatrix.rows[i].push(prefillValue); 
      context.currentMatrix.columns[j].push(prefillValue); 
      context.currentMatrix.regions[region].push(prefillValue); 
      return prefillValue; 
     } 
    }) 
    .on('keyup', $.proxy(this.validateInput, this)) 
    .on('click', $.proxy(this.captureInput, this))); 

높은 수준보기 : 무엇 일어나는 것은 나는 easyGame 변수에 저장된 배열의 배열을 가지고있다. 이 변수는 "쉬운"보드에 대해 미리 만들어진 번호 위치를 포함합니다.

각 행과 열의 easyGame 변수를 조회하고 값이 있으면 (일명 easyGame이 -1이 아닌 한) 현재 입력 상자의 값으로 설정합니다. 나는 밖으로 나가고있다. 조회가 -1로 돌아 오면 입력 값은 공백으로 남습니다.

위의 코드는 잘 작동합니다 (꽤 느리고 clunky하지만 와이어 프레임은 현재 있습니다).

내가 막히는 곳에서는 초기 빌드 (일명 위의 코드)에 값이있는 입력 상자 만 비활성화하려고합니다.

나는 이것을 overthink하고 있지만, 무효화 된 property.prop ('disabled', true)를 조건부로 적용하는 방법이 있다고 생각한다.

미리 감사 드리며 필요한 정보가 더 있으면 알려주세요.

답변

0

알아 냈습니다. 이 작업을 수행하려고하는 다른 사용자의 답변은 다음과 같습니다.