2012-05-20 3 views
3

요소의 선택 옵션을 어떻게 얻을 수 있습니까? document.query ("# ID가") - 그래서 내가 할 수없는 때에 프로퍼티 가치되지 않은 요소를 반환선택한 값을 얻으려면 <select> 다트에

var val = document.query("#id").value; 

var val = (SelectElement)(document.query("#id")).value; // - "SelectElement is class and cannot be used as an expression" 

방법을 제대로 다트에 타입 변환을 할? 일반적으로

답변

1

그냥 필요 그것을 무시할 수 있습니다

+0

작동하지만 경고를 받고 있는데 이유를 모르겠습니다. –

4

, 모든 HTML 요소를 처리 할 때, 나는 보통 먼저 HTML 요소 조회 : 그래서

int val = Math.parseInt(myElement.value); 

:

InputElement myElement = document.query(#myInputElement); 

그런 다음 해당 요소에 포함 된 값을 캡처하는 몇 가지 이벤트를 사용을 예를 들어, HTML에서는 입력 범위가 유형의 입력 요소를 가질 수 있습니다.

<input id="mySlider" type="range" min="1000" max="10000" step="20" value="5000" /> 

Dart에서, 나는 마우스 업 이벤트를 사용하여이 슬라이더의 값을 잡아 것 :

InputElement mySlider = document.query('#mySlider'); 
mySlider.on.mouseUp.add((e) { 
    int _val = Math.parseInt(mySlider.value); 
    document.query('#status').innerHTML = "$_val"; 
}); 

편집 :M1에서, 지금 바로 캐스트 연산자 as를 사용할 수 있습니다. 당신의 HTML이처럼 보였다 경우

<p id="text">This is some text</p> 

당신이 수행하여 단락 태그의 텍스트를 검색 할 수 있습니다 :

String str = document.query("#idOfSelect").value; 

하는 경고가 될 것입니다,하지만 당신 :

String str = (query('#text') as ParagraphElement).text; 
+0

예, 작동하지만 번거로운 변형입니다. "InputElement mySlider = document.query ('# mySlider');"에서 " 형식 변환이 발생하지만 자바 "(클래스) var"에서와 같이하고 싶습니다. 다트에서 가능한가 아니면 다른 방법이 있습니까? – rotten

+0

다트는 선택적으로 입력되었으므로 내가 제안한 방식으로 유형 변환을 수행 할 수 있다고 생각하지 않습니다. Eli Brandt의 기사 (Why Dart Types) (http://www.dartlang.org/articles/why-dart-types/) 또는 Gilad Bracha의 [(Optional Types)] (http : // www.dartlang.org/articles/optional-types/) 다트의 타입 시스템에 관한 것입니다 (즉, 자바의 정적 타이핑보다 자바 스크립트의 동적 타이핑과 비슷합니다). – scribeGriff

+0

저는 (query ("# text")를 InputElement로 사용합니다.) .value 구문을 좋아합니다. 그렇게하면 Java에서와 같이 타이핑 및 컨텍스트 방식 완성을 사용할 수 있습니다. 물론, InputElement라는 것을 확실히 알고 있다면, 캐스트는 IDE를 행복하게 만드는 것을 제외하고는 아무 것도하지 않습니다. – CorayThan

0

제가 사용했습니다 :

var val = int.parse(query("#id").value, onError: (_) => 1);

이렇게하면 쿼리 ("# id")에서 예외가 발생하지 않습니다. 값이 null이고 기본값 (1)이 할당됩니다.

관련 문제