IE6/7/8 에서 옵션 요소 가 value 를 설정 하지 않 았 을 때 선택 하면 빈 문자열 을 가 져 옵 니 다

2772 단어 Select빈 문자열
아래 와 같다.
change 이 벤트 를 실행 할 때 각 브 라 우 저 에서 테스트 결 과 는 다음 과 같 습 니 다.IE6/7/8:빈 문자열 IE9/Firefox/safari/chrome/Opera:해당 하 는 option 요소 의 innerText 값 을 팝 업 합 니 다.IE9/Firefox/safari/chrome/Opera 의 실현 에 일리 가 있 음 이 분명 하 다.즉,option 의 value 와 option 의 innerText 가 같 을 때 value 를 생략 하고 쓰 지 않 을 수 있 습 니 다.이렇게 하면 더욱 간결 하 다.안 타 깝 게 도 IE6/7/8 은 이렇게 쓰 는 것 을 지지 하지 않 는 다.모든 브 라 우 저 를 호 환 할 수 있 도록 option 을 쓸 때 value 속성 이 빠 지지 않도록 해 야 합 니 다.위의 html 코드 를 약간 수정 합 니 다
 
<!DOCTYPE HTML>
<html>
<head>
<title>IE6/7/8 Option value Select </title>
</head>
<body>
<select onchange="alert(this.value)">
<option>one</option>
<option>two</option>
<option>three</option>
</select>
</body>
</html>
첫 번 째 option 에 value 속성 을 추가 합 니 다.이 테스트 절 차 는 다음 과 같 습 니 다.투 2 를 선택 하고 원 두 번 팝 업 을 선택 한 결 과 는 다음 과 같 습 니 다.IE6/7/8:[빈 문자열,1]IE9/Firefox/safari/chrome/Opera:[two,1]결과 적 으로 각 브 라 우 저의 실현 은 다음 과 같 습 니 다.IE6/7/8 에서 option 이 value 값 이 없 으 면 빈 문자열 로 돌아 갑 니 다.IE9/Firefox/safari/chrome/Opera 에서 option 의 value 값 을 먼저 취하 고 value 속성 이 없 으 면 option 의 innerText 값 을 취한 다.코드 좀 더 수정 해 주세요.
이전 단계 에 비해 두 번 째 option 의 two 양쪽 에 빈 칸 을 추가 하 였 습 니 다.이번 에는 alert 에서 value 의 길 이 를 냅 니 다.two 를 선택 하 세 요.이 때 각 브 라 우 저 에서 팝 업 결 과 는 IE6/7/8 입 니 다. : 0IE9/Firefox/Safari/Chrome/Opera : 3IE 6/7/8 에 서 는 value 속성 이 없 는 option 에 빈 문자열 을 되 돌려 줍 니 다.length 는 0 입 니 다.이번 테스트 는 주로 IE9/Firefox/safari/chrome/Opera 라 는 현대 브 라 우 저 에 주목 하고 있다.그들 중 돌아 오 는 것 은 모두 3 이지 5 가 아니다.이 브 라 우 저 내부 에서 two 양쪽 의 공백 부 호 를 제거 하 는 것 을 볼 수 있 습 니 다(trim).지난 테스트 에 서 는 IE9/Firefox/safari/chrome/Opera 에서 option 을 먼저 가 져 온 value,value 속성 은 option 의 innerText 값 을 다시 가 져 오지 않 았 습 니 다.value 속성 이 설정 되 어 있 지 않 은 option 에 대해 서 는 innerText 를 value 로 되 돌려 주 려 고 노력 하고 양쪽 의 공백 부 호 를 자동 으로 제거 합 니 다.이상 에서 option 을 되 돌려 주 는 innerText 를 언급 했 지만 innerHTML 이 아 닙 니 다.코드 를 수정 합 니 다
 
<select onchange="alert(this.value)">
<option value="1">one</option>
<option>two</option>
<option>three</option>
</select>
두 번 째 option 은 value 속성 이 없고 그 안에 span 요소 가 있 습 니 다.이때 two 를 선택 하 십시오.IE9/Firefox/safari/chrome/Opera 에서 팝 업 되 는 것 은 여전히"two"이지"to"이 아 닙 니 다.alert 에서 length 를 내 면'to'의 길이 가 아 닌 3 을 발견 할 수 있 습 니 다.option 을 쓰 는 value 를 잊 어 버 렸 을 때 이 현대 브 라 우 저 들 은 가능 한 한 정확 한(클 라 이언 트 프로그래머 가 원 하 는)결 과 를 되 돌려 줍 니 다.value 는 IE6/7/8 보다 잘못 사용 하 는 것 이 좋 습 니 다.관련:브 라 우 저 별 option 요소 의 표현 차이

좋은 웹페이지 즐겨찾기