문제

나는 때때로 존재하고 때로는 그렇지 않은 ID "foo"가있는 텍스트 필드를 가지고 있습니다. 그것이 존재하면 특정 값을 입력하고 싶습니다.

사용하여 어떻게해야합니까? RJ (안에 레일 2.2)?

나는 이것을 시도했지만 작동하지 않습니다.

if page[:foo]
  page[:foo].value = "bar"
end

나는 얻다

TypeError : NULL 값 텍스트 필드가 존재하지 않는 경우

.

도움이 되었습니까?

해결책

나는 그것이 존재하는 경우 조건부 항목이있는 곳에서 여러 번 일어났다. page.select 사용 null 값 오류를 피하십시오.

  page.select('#dom_object_id').each do |element|
    element.value = "bar"
  end

나는 이것을 내 *.js.rjs 파일에 넣었다. SELECT가 빈 배열을 각각에 보내면 ID가 올바른 ID가있는 DOM 객체가 페이지에있을 때 ID로 직접 선택할 때 얻을 수있는 유형 테러 대신 아무것도 반환하지 않습니다.

다른 팁

나는 당신이 RJ에서 할 수 있다고 생각하지 않습니다. 해결 방법으로 요소가 존재하는지 확인하는 RJS의 JavaScript 메소드를 호출 할 수 있습니다.

page << "update_foo('#{my_value}');"

자바 스크립트 ..

function update_foo(val)
{
  if( $('foo') != undefined )
  {
    $('foo').value = 'bar';
  } 
}

편집하다

루비 부품을 수정했습니다 ..

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top