variable valor una texto seleccionar seleccionado obtener indice guardar combo asignar javascript vb.net listbox

javascript - una - obtener todos los valores seleccionados de ListBox(lado del cliente)



obtener valor seleccionado select php (2)

Estoy tratando de implementar un validador personalizado en JavaScript para mi página vb.net. Este validador debe verificar si en un cuadro de lista de varias visitas no hay ningún valor seleccionado, mostrando un error emergente si es así.

La cuestión es que quiero hacerlo del lado del cliente, pero en mi función ''validateFunction'' solo obtengo el último elemento seleccionado (o no seleccionado, si ya se ha seleccionado). Sé cómo hacerlo en código de código subyacente, pero quiero hacerlo desde el lado del cliente.

código aspx:

<asp:ListBox ID="lbEdit" runat="server" SelectionMode="Multiple"> </asp:ListBox> <asp:CustomValidator id="cvEdit" runat="server" Display="None" ControlToValidate="lbEdit" ClientValidationFunction="validateFunction"/> <ajax:ValidatorCalloutExtender runat="server" ID="vceEdit" TargetControlID="cvEdit" />

Código de JavaScript:

function validateFunction(source, arguments) { var options = document.getElementById(source.controltovalidate).options; for (var i = 0; i < options.length; i++) { if (options[i].selected == true) { args.IsValid = true; return; } } args.IsValid = false; }

Como ya he dicho, dado que el último elemento (no) seleccionado será el único seleccionado en el conjunto de "opciones", la función de validación siempre será verdadera ...

Pensé en rellenar otra matriz en otra función de JavaScript como la "verdadera matriz seleccionada" y comparar sus valores con la opción seleccionada cada vez que se dispara la función ... pero creo que debería haber una forma mejor.

Entonces ... ¿Hay una manera directa de obtener TODOS los elementos seleccionados de un cuadro de lista multichoice en javascript?


Su pregunta es un poco confusa, y su función parece funcionar, pero lo que voy a responder aquí es la última parte de su pregunta Entonces ... ¿Hay una manera directa de obtener TODOS los elementos seleccionados de un cuadro de lista multichoice en javascript?

Prueba esta función js

<script type="text/javascript"> function validateFunction() { var options = document.getElementById(''<% = this.lbEdit.ClientID %>'').options; var selectedItems; for (var i = 0; i < options.length; i++) { if (options[i].selected == true) { if (selectedItems) { selectedItems = selectedItems + ";" + options[i].value; } else { selectedItems = options[i].value; } } } if (selectedItems) { alert(selectedItems); return true; } else { alert("No item was selected"); return false; } } </script>

Y este es el código aspx, eliminé el validador

<asp:ListBox ID="lbEdit" runat="server" SelectionMode="Multiple" > </asp:ListBox> <asp:Button ID="test" runat="server" Text="send" OnClientClick="return validateFunction();"/>

En las herramientas de desarrollo de su navegador puede ver información detallada sobre todas las propiedades de su objeto


let a1 = [ { Selected:false, }, { Selected:false }, { Selected:false }];

if (a1.some (i => i.Selected)) console.log (true); else console.log (falso);

Quizás lo que quieras