いよいよ明日か・・・。IE に node.hasAttribute が無い件&その代用
select 要素に付随する option 要素の属性の value が存在しない場合、それに使われているテキストが返される。そして、スクリプトからそれを判定する方法。
<select name="hoge"> <option>abc</option> <option value="">abc</option>
これをスクリプトから判別するには?
var op = document.forms[0].elements['hoge'].options; alert (op[0].hasAttribute ('value')); // IE では使えない。 alert (op[0].getAttribute ('value') === ''); alert (typeof op[0].attributes.getNamedItem('value').value !== 'undefined'); alert (typeof op[0].attributes.getNamedItem('value').specified);
ちなみに、"abc" を表示するには、
alert (op[1].attributes.value.value); // これが間違いだと指摘されても理解できるまでに時間を要した(?)。ばかっ! alert (op[1].value); // オプションの時はこれでよしとして。 alert (op[1].attributes.getNamedItem('value').value);