javascript - attribute - ¿Cómo selecciono una opción usando un prototipo?
title css (9)
Supongamos que tengo un formulario HTML que contiene este elemento de selección:
<select name="mySelect" id="mySelect">
<option value="1" id="option1">1</option>
<option value="2" id="option2">2</option>
</select>
¿Cómo puedo usar un prototipo para seleccionar uno de los elementos de opción?
Los métodos enumerados en la referencia de API de Form.Element no parecen ayudar con esto.
editar: con "seleccionar" me refiero al efecto equivalente del atributo "seleccionado" en un elemento de opción.
Para obtener la opción actualmente seleccionada, use:
$$(''#mySelect option'').find(function(ele){return !!ele.selected})
Para seleccionar la segunda opción por valor, puede usar esto:
var myChoice = ''2'';
$$(''select#mySelectId option'').each(function(o) {
o.selected = o.readAttribute(''value'') == myChoice;
});
Prueba esto:
$(''mySelect'').setValue(1); // or whatever value you want to select
este seleccionaría la option1
Suponiendo que sepa qué valor desea que sea seleccionado, intente:
$(''mySelect'').value = 2; // 2 being the value you want selected
nils petersohn casi lo hace bien, pero por lo general, el atributo "id" de la opción no es lo que la gente está seleccionando. este pequeño cambio lo hace funcionar.
var selectThis = ''option1'';
$$(''select#mySelectId option'').each(function(o) {
if(o.readAttribute(''value'') == selectThis) { // note, this compares strings
o.selected = true;
throw $break; // remove this if it''s a multi-select
}
});
prueba esto...
document.observe(''dom:loaded'', function() {
$(''mySelect'').observe(''change'', function(event) {
...
});
});
var itis = $(mySelectId).select(''option[value="'' + sValueToSelect + ''"]'');
if ( itis && itis.length > 0 )
itis[0].selected = true;
var options = $$(''select#mySelect option'');
var len = options.length;
for (var i = 0; i < len; i++) {
console.log(''Option text = '' + options[i].text);
console.log(''Option value = '' + options[i].value);
}
options
es una matriz de todos los elementos de opción en el #mySelect
desplegable #mySelect
. Si desea marcar uno o más de ellos como seleccionados, solo use la propiedad selected
// replace 1 with index of an item you want to select
options[1].selected = true;
var selectThis = ''option1'';
$$(''select#mySelect option'').each(function(o){
if(o.id==selectThis){o.selected = true;$break;}
});