select
요소에서 맞춤법 유효성 오류를 설정할 수 있습니다. setCustomValidity
메소드는 HTML5 CR의 constraint validation API에 포함되어 있습니다. 이로 인해 불일치보고와 유사한 방식으로 양식을 제출할 때 오류가보고되어야합니다. 예 :
<select onclick="this.setCustomValidity('Error in selection');
title="Select a good option">
(실제로, 당신은 아마
onclick
하지만
onchange
를 사용하고 싶지 않아요하지만 문제는 특히
onClick
언급하고있다..)
문제가있다,하지만. 이 경우에만 오류 조건이 설정되고 요소가 :invalid
선택기와 일치하므로 일부 오류 표시기가 나타날 수 있지만 제출 단추 또는 이와 유사한 항목을 클릭하여 양식 데이터의 유효성을 검사하는 경우에만 오류 메시지가 표시됩니다. 이론적으로는 reportValidity
메서드를 사용하면 오류를 즉시 표시 할 수 있지만 브라우저는 아직 지원하지 않습니다.
Firefox에서 "풍선"의 너비는 select
요소의 너비에 의해 제한되며 가장 긴 문자 인 option
이 짧으면 잘릴 수 있습니다. 간단한 CSS로 치료할 수 있습니다 (물론 select
메뉴 모양에 미칠 수있는 영향과 함께).
select:invalid { min-width: 150px }
이 있습니다 :
는
select { min-width: 150px }
은 또한 정상 상태에서 select
요소의 모양에 영향을주지 않지만 사용자 지정 오류를 설정할 때 폭 넓은해질 수 있습니다 다음과 같은 대안을 고려해 볼 수 있습니다 또한 파이어 폭스에는 버블에 속성 값 title
이 포함되지 않는다. 가능한 해결 방법은 (문맥에 따라 가능할 수도 있고 그렇지 않을 수도 있음) title
속성을 생략하고 setCustomValidity
에 전달하는 인수에 필요한 모든 텍스트를 포함시키는 것입니다.
가능한 유스 케이스는 사용자의 이전 선택에 따라 일부 옵션이 허용되지 않도록 select
메뉴가있는 양식입니다. 그런 다음 가질 수 있습니다
<select onchange="if(notAllowed(this)) setCustomValidity('Selection not allowed')" ...>
여기서 notAllowed()
은 정의한 적절한 테스트 기능입니다. 그러나 일부 사용자의 선택에 따라 허용되지 않는 옵션을 제거하거나 사용 중지하는 것이 유용 할 수 있습니다 (select
). 분명히 더 많은 코딩 작업을 의미 할 수 있습니다 (특히 사용자가 다른 데이터를 변경하여 옵션을 다시 허용해야하는 경우이를 취소해야하므로).
자세히 문제를 설명해주십시오 ...? – vino20
세부 사항을 추가했습니다 – Omer
당신은 단지 html로만 귀하의 메시지를 보여 드리고 싶습니다? – vino20