selectNN 2 IE 3 DOM 1

select オブジェクトは select 要素に対応するオブジェクトです。この要素は option 要素を含むフォームコントロールです。Macintosh 版 Internet Explorer 4 では innerHTML プロパティと innerText プロパティを使用できません。Netscape 6 では、共通のdisabled プロパティを使用できます。

 
相当する HTML コード
 
<select>
 
オブジェクト参照
 
[window.]document.formName.selectName
[window.]document.forms[i].elements[i]
[window.]document.getElementById("elementID")
 
オブジェクト固有のプロパティ
 
dataFlddataSrcformlengthmultiplename
options[]selectedIndexsizetypevalue
 
オブジェクト固有のメソッド
 
add()item()namedItem()remove()
 
オブジェクト固有のイベントハンドラープロパティ
 
ハンドラーNNIEDOM
onblur24なし
onchange24なし
onfocus24なし
dataFldNN なし IE 4 DOM なし

読み書き

IE のデータバインディングと共に使用して、リモートデータソースの列名を select オブジェクトの selectedIndex プロパティに関連付けます。この要素には datasrc 属性も設定する必要があります。dataFlddataSrc の両方のプロパティに空の文字列を設定すると、要素とデータソースのバインディングが壊れます。Macintosh 版 IE 5 ではテキストファイルのデータソースに対してのみ機能します。

 
 
document.forms[0].mySelect.dataFld = "choice";
 

データソースの列の識別子。大文字と小文字は区別されます。

 
既定値

なし

dataSrcNN なし IE 4 DOM なし

読み書き

IE のデータバインディングと共に使用して、リモートデータアクセス用にデータソースオブジェクトを読み込むページの object 要素の ID を示します。dataFlddataSrc の両方のプロパティに空の文字列を設定すると、要素とデータソースのバインディングが壊れます。Macintosh 版 IE 5 ではテキストファイルのデータソースに対してのみ機能します。

 
 
document.forms[0].mySelect.dataSrc = "DBSRC3";
 

データソースの識別子。大文字と小文字は区別されます。

 
既定値

なし

formNN 2 IE 3 DOM 1

読み取り専用

現在の要素が入っている form 要素への参照を返します。この要素からイベントを処理する場合は、イベントハンドラー関数がイベントオブジェクトの target または srcElement プロパティとして select 要素に自動的にアクセスします。form プロパティを読み取ることにより、スクリプトで同じフォーム内の他のコントロールに簡単にアクセスできるようになります。

 
 
var theForm = evt.srcElement.form;
 

form 要素オブジェクトへの参照

 
既定値

なし

lengthNN 2 IE 3 DOM 1

読み書き

select オブジェクト内にネストされている option オブジェクトの数です。戻り値は select オブジェクトの options.length プロパティと同じで、ネストされている option オブジェクトに対する for ループのカウンタの最大値として安全に使用できます。W3C DOM では読み取り専用と定義されていますが、一時期、主要ブラウザで読み書き可能であったため、現在もこの値の調整は可能です。ただし、このプロパティに変更を加える必要があるとしても、select オブジェクトのすべてのオプションを空にするために値を 0 に設定する場合に限られます。IE 5 以降または Netscape 6 でオーサリングする場合には、select.remove() または select.add() メソッドで 、select 要素内にネストされている option 要素の条件を変更することをお勧めします。

 
 
document.forms[0].mySelect.length = 0;
 

整数

 
既定値

なし

multipleNN 6 IE 4 DOM 1

読み書き

ブラウザで select 要素をリスト{ックスとして表示し、リストからユーザーが複数のオプションを選択できるかどうかを示します。デフォルトでは size プロパティには、ネストされている option 要素の数が設定されますが、size プロパティを設定することによってこの値を上書きできます。スクロール式の選択リストをポップアップメニューに変更するには、multiple プロパティに false を設定し、size プロパティに 1 を設定します。ユーザーが連続した複数のオプションを選択するには、Shift キーを押しながら選択する最初と最後のオプションをクリックします。連続していない複数のアイテムを選択するには、Windows では Ctrl キーを押しながら、Macintosh では Command キーを押しながら各アイテムをクリックする必要があります。multiple プロパティは、size に 1 が設定されていてポップアップメニューが表示される場合には、効果がありません。

 
 
if (document.entryForm.list3.multiple) {
    ...
}
 

true または false のブール値

 
既定値

false

nameNN 2 IE 3 DOM 1

読み書き

フォームコントロールに関連付けられた識別子です。このプロパティの値は、フォームがサーバーに送信される際に「名前/値」のペアの「名前」の部分として送信されます。コントロールのラベルはコントロールタイプ別に他の方法で設定されるため、名前はユーザーには表示されません。フォームコントロールの名前は、オブジェクトへのスクリプト参照でも使用できます。最近の規格では id 属性の方が推奨されていますが、多くのブラウザでは現在も、コントロールの値を送信するために、フォームコントロールに name 属性を設定する必要があります。

 
 
document.orderForm.payment.name = "credcard";
 

識別子の命名規則に従った文字列。大文字と小文字は区別されます。識別子には空白スペースは使用できず、1 文字目に数字は使用できません。アンダースコア以外の句読点の使用は避けてください。

 
既定値

なし

options[]NN 2 IE 3 DOM 1

読み取り専用

現在の要素に含まれるすべての option オブジェクトの配列を返します。配列中の要素にはソースコード順序に従って 0 を基準とするインデックスが付いています。下位互換性を保ちながらこのコレクションを使って option 要素を select 要素に対して追加または削除する方法の詳細については、options オブジェクトを参照してください。select 要素内のこのコレクションに対してループを実行することにより、複数のオプションを選択します。

 
 
var selVals = new Array();
for (var i = 0; i < document.forms[0].mySelect.length; i++) {
    if (document.forms[0].mySelect.options[i].selected) {
        selVals[selVals.length] = document.forms[0].mySelect.options[i].value;
    }
}
 

option オブジェクトの配列

 
既定値

なし

selectedIndexNN 2 IE 3 DOM 1

読み書き

ユーザーが選択したオプションを示す 0 から始まる整数インデックスです。select 要素が複数のオプションを選択できるように設定されている場合、selectedIndex プロパティは選択されている最初のオプションのインデックスを返します。詳細については selected プロパティを参照してください。このプロパティを使って、選択されているオプションの値やテキストにアクセスできます。その例を次に示します。

 

最近のブラウザは、オプションが何も選択されていない場合、selectedIndex プロパティは -1 を返します。Windows 版 IE 5 以降で、この値を -1 に設定すると、すべてのオプションの選択を解除することができます。Netscape 6 では、このプロパティを -1 に設定しても、表示されるオプションの選択が解除されない場合がありますが、送信されるフォームのすべてのオプションの選択は解除されます。

 
 
var list = document.forms[0].selectList;
var listText = list.options[list.selectedIndex].text;
 

整数

 
既定値

なし

sizeNN 6 IE 4 DOM 1

読み書き

スクロール式の選択リストに表示する行数を制御します。select 要素の size 属性にタイプするプロパティです。multiple プロパティに true を設定すると、オプションの数より少ない数に設定された size プロパティの値は上書きされます。スクロール式の選択リストをポップアップメニューに変更するには、multiple プロパティに false を設定し、size プロパティに 1 を設定します。

 
 
document.forms[0].choices.size = 6;
 

整数

 
既定値

なし

typeNN 3 IE 4 DOM 1

読み取り専用

フォームコントロール要素のタイプを返します。select オブジェクトは、複数のオプションを選択できる要素かどうかによって、2 つの値のどちらかが返されます。値はすべて小文字で返されます。行う処理によっては、特定のタイプを検索するためにすべてのフォーム要素を調べる必要があります。たとえば、"text" タイプのフォームコントロールをすべてクリアにし、他のタイプのコントロールはそのままにする場合などがこれに該当します。

 

ただし Navigator 4 では、要素の size 属性が 1 より大きい値に設定されている場合には、multiple 属性が設定されていなくても、select オブジェクトのタイプとして select-multiple が誤って返されます。このバグは Netscape 6 では修正されています。

 
 
if (document.forms[0].elements[3].type == "select-multiple") {
    ...
}
 

buttoncheckboxfilehiddenimagepasswordradioresetselect-multipleselect-onesubmittexttextarea のいずれかの定数を示す文字列

 
既定値

multiple プロパティの値によって異なります。

valueNN 6 IE 4 DOM 1

読み書き

要素の「名前/値」のペアとして送信される、フォームコントロールに関連付けられている現在の値です。値はすべて文字列ですが、ブール値や数値など他のタイプのデータを示す場合もあります。IE 4 および Netscape 6 より以前のブラウザでは、スクリプトで select オブジェクトの selectedIndex プロパティを options 配列のインデックスとして使って、選択されたオプションの値を取得し、その後それぞれの option オブジェクトの selected プロパティを調べて、true の値を見つける必要がありました。

 
 
if (document.forms[0].medium.value == "CD-ROM") {
    ...
}
 

文字列

 
既定値

なし

add()NN 6 IE 5 DOM 1

add(newOptionElement[, positionIndex]) add(newOptionElement, optionElementReference)

現在の select 要素に新しい option 要素を追加します。あいにく Internet Explorer と Netscape 6 とでは、このメソッドのパラメータ値が一致していません。すべてのブラウザで、新たに作成した option 要素への参照 (この参照には document.createElement("option") メソッドの戻り値を使用するとよい) が必{になるのは同じですが、ブラウザごとに、2 番目のパラメータは異なります。Internet Explorer では、2 番目のパラメータは省略可能であり、既存の option 要素の数値インデックスを渡します。新しい option はこの既存の要素の前に挿入されます。2 番目のパラメータを指定しない場合、新しい option は既存の option 要素の末尾に追加されます。Netscape 6 では、W3C の DOM で勧告されている未完成の HTML モジュールが実装されており、2 番目のパラメータは必{です。パラメータは、既存の option 要素への参照か null のいずれかです。パラメータが option 要素への参照の場合、新しい option は参照先の option の前に挿入されます。パラメータが null の場合、新しい option は既存の option の末尾に追加されます。

 
パラメータ
 
  • スクリプトで作成した option 要素への参照。この要素は通常 document.createElement() メソッドで作成されます。
  • Internet Explorer で、ネストされている既存の option 要素を示す整数。新しい option はこの要素の前に挿入されます。このパラメータは省略可能です。このパラメータを省略した場合、新しい option は option リストの末尾に追加されます。
  • option 要素への参照。新しい option は、この要素の前に挿入されます。null を指定すると、新しい option を option リストの末尾に追加できます。
 
戻り値

なし

item()NN なし IE 5 DOM なし

item(index[, subindex])

インデックス値 (または index 値と subindex 値も可能) と一致する要素に対応する、1 つのネストされた option オブジェクト、またはネストされた option オブジェクトのコレクションを返します。

 
パラメータ
 
  • パラメータに 0 から始まる整数値を指定した場合は、ソースコード順序 (現在の要素内でのネスト順序) で番号が振られたアイテムに対応する 1 つの要素が戻り値として返されます。 パラメータに文字列を指定した場合は、その文字列と同じ id プロパティを持つ要素のコレクションが返されます。
  • 最初のパラメータで文字列を指定した場合、2 番目のパラメータで 0 から始まるインデックス値を指定することにより、最初のパラメータ文字列と同じ id プロパティを持つコレクションの中から、指定した要素を取得できます。
 
戻り値

1 つのオブジェクト、またはオブジェクトのコレクション (配列)。パラメータに一致する要素がない場合、null が返されます。

namedItem()NN なし IE 6 DOM なし

namedItem("ID")

パラメータ文字列と一致する要素に対応する、1 つの ネストされた option オブジェクト、またはネストされた option オブジェクトのコレクションを返します。

 
パラメータ
 
  • 目的の要素の id 属性と同じ値を示す文字列
 
戻り値

1 つの option オブジェクト、または option オブジェクトのコレクション (配列)。パラメータに一致する要素がない場合、null が返されます。

remove()NN 6 IE 5 DOM 1

remove(positionIndex)

現在の select 要素から option 要素を削除します。削除する option 要素を指定するには、0 から始まるインデックス内の位置をパラメータで指定します。select オブジェクトの length プロパティに 0 を設定する代わりに、次のような単純なループ構文で既存のすべてのオプションを削除できます。

while (selectElemRef.length> 0) {
    selectElemRef.remove(0);
} 
 

この時点でリストに新しいオプションを追加するには、さまざまな方法があります。add() メソッドおよび options オブジェクトを参照してください。

 
パラメータ
 
  • ネストされたオプションのコレクション内で削除対象となるアイテムを示す 0 から始まる整数
 
戻り値

なし

accessKeyNN なし IE 4 DOM 1

読み書き

要素にフォーカスを移動するため (一部のブラウザ)、またはフォームコントロールやリンクアクションをアクティブにするための単一の文字キーです。リンクをアクティブにするためにアクセスキーと一緒に修飾キー (CtrlAlt、または Command) を押す必要があるかどうかは、使用するブラウザと OS によって決まります。Windows 版 IE 5 以降および Netscape 6 では、Alt キーを押す必要があり、文字キーの大文字と小文字は区別されません。Macintosh 版 IE 5 以降および Netscape 6 では、アクションを実行するには Ctrl キーを押す必要があります。

 

広く使用されている共通プロパティとしてここに記載されていますが、厳密にはすべての実装に当てはまるわけではありません。Netscape 6 (W3C DOM の場合) では、このプロパティが認識される要素は、aareabuttoninputlabellegend、および textarea だけです。IE 4 では、これに appletbodydivembedisindexmarqueeobjectselectspantable、および td が追加されています。ただし、label および legend は削除されました。IE 5 では、他のすべての表示可能な要素が追加されていますが、注意が必要です。input 要素とその他のフォーム関連要素の場合を除き、IE 5 以降ではアクセラレータキーの組み合わせで要素にフォーカスを移動するには、要素に tabindex 属性および tabIndex プロパティ値も (すべての値が 0 の場合でも) 指定する必要があります。Netscape では現在のバージョン 7 で、スクリプトによってプロパティ値を変更しても、UI のビヘイビアは変更されません。

 
 
document.links[3].accessKey = "n";
 

単一の英数字および句読点を示すキー{ード文字

 
既定値

空の文字列

disabledNN 6 IE 4 DOM 1

読み書き

ユーザーが要素を操作できるかどうかを示します。true に設定すると、要素はフォーカスを得ることができず、ユーザーは要素を変更できなくなります。通常、要素はページ上でグレー表示になります。このプロパティは、Windows 版 IE 5.5 以降のすべての HTML 要素オブジェクトで使用できます。IE 4 と IE 5 では、フォームコントロールにのみ適用されます。Netscape 6 以降では、フォームコントロールと style 要素オブジェクトで認識されます。使用できなくなったフォームコントロールの「名前/値」のペアは、フォームから送信されません。

 
 
document.getElementById("myButton").disabled = true;
 

true または false のブール値

 
既定値

false

recordNumberNN なし IE 4 DOM なし

読み取り専用

IE のデータバインディングと共に使用して、データセットにあるレコードのうち、要素 (データバインディングによってコンテンツが取得された要素) を生成したレコードを表す整数を返します。このプロパティの値を使用して、ADO (Active Data Objects) レコードセットから特定のレコードを検索できます。詳細については、recordset プロパティを参照してください。このプロパティはすべての IE 要素オブジェクトに定義されていますが、データバインディングに関連する他のプロパティは要素のサブセットに属しています。

 
 
<script for="tableTemplate" event="onclick">
		    myDataCollection.recordset.absoluteposition = this.recordNumber;
		    ...
		</script>
 

整数

 
既定値

null

tabIndexNN 6 IE 4 DOM 1

読み書き

ドキュメント内にあるすべてのフォーカス可能な要素のタブ順序内で、この要素の順番を示す番号です。タブ順序は一定の規則に従って決定されます。ユーザーがページ内で Tab キーを押すと、最初に tabIndex プロパティが 0 より小さく設定されている要素にカーソルが移動します。フォーカスは、tabIndex の値が一番小さい要素から開始して、値の一番大きい要素まで順番に移動します。ページやドキュメント内での物理的な位置は関係ありません。tabIndex の値が同じ要素が 2 つある場合、ドキュメント内で先頭に近い方の要素が最初にフォーカスを得ます。その後、tabIndex プロパティをサポートしない要素や、値が 0 に設定されている要素がフォーカスの対象となります。これらの要素はドキュメント内の配置順にフォーカスを受けます。

 

W3C DOM および Netscape 6 では、tabIndex プロパティは aareabuttoninputobjectselecttextarea の各要素オブジェクトに制限されています。IE 4 では、これに appletbodydivembedisindexmarqueespantable、および td が追加されます。IE 5 では、他のすべての表示可能な要素が追加されます。IE (のみ) で負の値を指定すると、要素がタブ順序から完全に削除されます。

 

Macintosh 版 IE 4 では、リンクとアンカーはタブ操作できないので、a 要素オブジェクトの tabIndex プロパティは無視されます。

 
 
document.getElementById("link3").tabIndex = 6;
 

整数

 
既定値

0

blur()NN 2 IE 3 DOM 1

現在のオブジェクトからフォーカスを削除し、オブジェクトの onblur イベントを呼び出します。IE の最新バージョンを除いたすべてのブラウザで、フォーカスとブラーに対応する要素 (イベントとメソッドの両方) の範囲が制限されています。第 8 章の共通 tabindex 属性を参照してください。下位互換性を保つには、テキスト input 要素や textarea 要素など、フォーカスを設定できる要素に blur() メソッドを適用します。要素を無効にする手段を持たないブラウザでは、たとえば、onfocus="this.blur();" 属性をテキスト input 要素に割り当ててフィールドを広範囲で無効にすることができます。これは、粗雑な方法ではありますが、下位互換性を保つには効果的です。

 

同じページでは blur() メソッドと focus() メソッドを控えめに使用してください。処理中に警告ダイアログ{ックスが表示されると、ブラーとフォーカスの無限ループを間違って実行してしまう可能性があります。また、1 つのオブジェクトで blur() メソッドを呼び出すと、window オブジェクトなど、別のオブジェクトが onfocus イベントを受け取ることがあります。

 
パラメータ

なし

 
戻り値

なし

focus()NN 2 IE 3 DOM 1

現在のオブジェクトにフォーカスを設定し、オブジェクトの onfocus イベントを呼び出します。IE の最新バージョンを除いたすべてのブラウザで、フォーカスとブラーに対応する要素 (イベントとメソッドの両方) の範囲が制限されています。第 8 章の共通 tabindex 属性を参照してください。下位互換性を保つには、テキスト input 要素や textarea 要素など、フォーカスを設定できる要素に focus() メソッドを適用します。

 

テキスト{ックスにフォーカスを設定し、{ックス内の全テキストをあらかじめ選択するには、focus() メソッドに続いて select() メソッドを要素に使用します。警告ダイアログ{ックスを閉じるときなど、ウィンドウの切り替えが発生する場合は、これらのメソッドを個別の関数内に配置し、ダイアログの alert() メソッドに続く setTimeout() メソッドからその関数を呼び出します。Windows 版 IE では、この方法で一連のステートメントが正しく実行されます。

 
パラメータ

なし

 
戻り値

なし