2015-01-23 2 views
-1

내 코드는 140 개 라인 긴하지만,이 중 일부를 기반으로 : 나는에 노력하고있어jQuery에서 비활성화 명령이 작동하지 않는 이유는 무엇입니까?

$('oracle').onchange = disablefield; 

http://jsfiddle.net/xjLknxp8/

사람 만이 선택하는 라디오 버튼과 하나 개의 필드에 입력 할 수 있습니다 .. .

+0

jquery에서 속성을 변경하는 방법이 아닙니다. 첫째, 선택자 : 정말로 'oracle'이라는 태그가 있습니까? - 마지막으로, 속성 값은 다음과 같이 변경됩니다 : $ (selector) .attr (' 'attrName', 'attrValue'); ' – ochi

+0

아, 맞아요. 오라클과 다른 사람들은 실제로 ID입니다. 따라서 해쉬를 앞에 붙였습니다. 나는 prop ('disabled', true)를 사용하기 위해 아래 제안을 시도했다. 하지만 지금까지 행운이 없다 ... – JacobIRR

답변

1

난 그냥 조정하여 Fiddle 짧은 버전은 다음과 : 그냥 클릭 된이 포함되지 않는다는 tr에있는 모든 입력 필드를 사용하지 않도록

$(document).ready(function() { 
    $("input[type='radio']").click(function(){ 
    disableOther(this.id); 
    }); 
}); 

function disableOther(item){ 
    $(".form-body input[type='text']").each(function(){ 
     $(this).removeAttr('disabled').val(""); 
    }); 
    $("input[type='radio']").not("#" + item).closest("tr") 
          .find("input[type='text']").each(function(){ 
     $(this).prop('disabled',true); 
    }); 
} 

를 대신 각 라디오 버튼 값마다 하나의 입력 필드를 비활성화 라디오 버튼을 선택하고 두 개의 다른 행에 대해 disabled으로 설정하기 전에 모든 텍스트 입력 필드에 대해 disable 속성을 제거하십시오.

+0

감사합니다. 문제를 보는 더 간단한 방법이 있다는 것을 알았습니다. 아주 좋았습니다. – JacobIRR

+0

내가 발견 한 한 가지는 모든 라디오 버튼을 선택하기 전에 모든 필드를 입력 할 수 있다는 것입니다. 내 HTML에서 나는 checked = "true"를 추가하려고했지만 스크립트에 의해 잡히지 않았습니다. 선택기를 대상으로 지정하고 동일한 스크립트에서 선택기를 선택 표시 할 수 있습니까? – JacobIRR

+0

@JacobIRR 모든 입력 필드를 비활성화하고 라디오 버튼을 클릭 할 때만 적절한 필드를 활성화 하시겠습니까? 이 경우 조정 된 피들처럼 할 수 있습니다. http://jsfiddle.net/c0aL8cem/ –

0

이 템플릿은 그것을 할 것입니다 :

$('input[name=bill_code1_1]').prop('disabled',true); 

을 오히려 당신이 한 것보다,이었다

$('input[name=bill_code1_1]').disabled=true; 

DOMObject.disabled = true 또는 $ Selector.prop ('disabled', true); DOM 개체 인 것처럼 선택기를 사용하고있었습니다.

+0

나는 이드가 전에는 #이 없다는 것을 깨달았다. 나는 당신의 솔루션을 지금까지 행운으로 구현했다. JSHINT에서 콘솔 오류나 오류가 발생하지 않습니다. 여전히 그걸로 놀고. – JacobIRR

+0

게시하기 전에 테스트 해 보았습니다. 나는 곧 스 니펫을 게시하고 피들을 다시 살펴볼 것입니다. – Mic

+0

다음은 ochi의 수정 사항과 함께 두 번째 반복입니다. http://jsfiddle.net/xjLknxp8/2/ – JacobIRR

관련 문제