RJS : 기존 페이지 요소를 확인 하시겠습니까?
-
08-07-2019 - |
문제
나는 때때로 존재하고 때로는 그렇지 않은 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';
}
}
편집하다
루비 부품을 수정했습니다 ..
제휴하지 않습니다 StackOverflow