* Make tests work better together. Tests are now skipped or marked incomplete.
[lhc/web/wiklou.git] / skins / common / htmlform.js
1 // Find select-or-other fields.
2 addOnloadHook( function() {
3 var fields = getElementsByClassName( document, 'select', 'mw-htmlform-select-or-other' );
4
5 for( var i = 0; i < fields.length; i++ ) {
6 var select = fields[i];
7
8 addHandler( select, 'change', htmlforms.selectOrOtherSelectChanged );
9
10 // Use a fake 'e' to update it.
11 htmlforms.selectOrOtherSelectChanged( { 'target': select } );
12 }
13 } );
14
15 var htmlforms = {
16 'selectOrOtherSelectChanged' : function( e ) {
17 var select;
18 if ( !e ) {
19 e = window.event;
20 }
21 if ( e.target ) {
22 select = e.target;
23 } else if ( e.srcElement ) {
24 select = e.srcElement;
25 }
26 if ( select.nodeType == 3 ) { // defeat Safari bug
27 select = select.parentNode;
28 }
29
30 var id = select.id;
31 var textbox = document.getElementById( id + '-other' );
32
33 if ( select.value == 'other' ) {
34 textbox.disabled = false;
35 } else {
36 textbox.disabled = true;
37 }
38 }
39 }
40