2009-11-25 4 views
0

을하고 난 "다음"기능이 동작하지 않습니다 :프로토 타입은 내가 프로토 타입 1.5을 다음 기능

Event.observe('sameAsBefore', 'click', function(item){ 
    checkbox = Event.element(item); 
    if (checkbox.checked == true) { 
     checkbox.next('address1').value = $('hidden_address1').value; 
    } 
} 

을 함께 다음 HTML을 :

<div class="some_div"> 
    <a class="sameAsBefore">Same</a> 
    <input class="address1" name="parent[address1]" size="30" type="text" /> 
</div> 

<div class="some_div"> 
    <a class="sameAsBefore">Same</a> 
    <input class="address1" name="parent2[address1]" size="30" type="text" /> 
</div> 

내가 업데이트를 트리거 할 동일한 div에있는 필드에서 그 이유는 .next()를 사용하고 있기 때문입니다.

ERROR :

checkbox.next("address1") is undefined 
anonymous(click clientX=645, clientY=300)applicat...259176252 (line 32) 
[Break on this error] checkbox.next('address1').value = $('hidden_address1').value;\n 

것은 무엇 잘못 될 수 있는가?

+0

페이지에서 'id = "address1"'이 (가)있는 요소가 누락 된 것 같습니다. –

+0

@Crescent 글쎄요 : TheOne

+0

@ Absolute0 : 네가 맞다. –

답변

0

왜 내가이 문맥에서 다음에 사용하는지 알지 못합니다. 당신은 당신이 단지를 통해 대상으로해야 요소의 ID를 알고있는 경우 :

$('address1').value = $('hidden_address1').value; 

당신은 확실히 ID로 (코멘트에서 언급) .next('#address1')이 문서에 고유해야합니다 통해 타겟 필요가 없습니다합니다.

그래도 문제가 해결되지 않으면 완전한 HTML 스 니펫을 게시하면 요소를 올바르게 타겟팅하는 방법을 알려 드릴 수 있습니다. 사이드 노트에서 1.5 버전을 사용중인 경우 꽤 오래된 버전을 사용하는 것과 같은 최신 버전의 프로토 타입을 사용하지 않는 이유가 있습니까?

+0

문제는 내가 2 div는 각각 id1 주소의 요소로 구성되며 각각 앞에 'sameAsBefore'요소가 붙습니다. – TheOne

+0

괜찮습니다. 문서 부족으로 투표 할 가치가 있었습니까? – robjmills

0

샘플 마크 업이 보이지 않습니다. ID가 중복되어 작업 할 수 있습니다. 그 외에는 next() 함수가 CSS 규칙을 선택기로 사용하는 것처럼 보입니다.

당신이 시도 유무 :

Event.observe('sameAsBefore', 'click', function(item){ 
    checkbox = Event.element(item); 
    if (checkbox.checked == true) { 
    checkbox.next('.address1').value = $('hidden_address1').value; 
    } 
} 

이것은 또한 "hidden_address1"의 ID를 가진 요소가 있다고 가정합니다.

0

예제에서 ID가 표시되지 않습니다. 나는 클래스 클래스 만 사용됩니다. 그리고 나는 또한 어떤 체크 박스도 보지 않는다.

avobe의 HTML이 fllowing로 같은 경우

,

<div class="some_div"> 
     <a class="sameAsBefore">Same</a> 
     <input class="address1" name="parent[address1]" size="30" type="text" /> 
    </div> 
    <div class="some_div"> 
     <a class="sameAsBefore">Same</a> 
     <input class="address1" name="parent2[address1]" size="30" type="text" /> 
    </div> 

사용하여 원하는 출력을 얻을 수 있습니다,

$$('.sameAsBefore').each(function(item){ 
    item.observe('click', function(e){ 
     item.next('.address1').value = "tested OK"; 
    }); 
}); 

감사합니다.