[Javascript] الحصول على جميع القيم المحددة من ليستبوكس (جانب العميل)


Answers

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

إف (a1.some (i => i.Selected)) console.log (ترو)؛ إلس console.log (فالس)؛

ربما ما تريد

Question

أحاول تنفيذ أداة اعتماد مخصصة في جافا سكريبت لصفحتي vb.net. يجب أن يتحقق هذا المصادقة إذا كان في ليستبوكس مولتشويس ليست هناك أي القيم المحددة، تظهر خطأ المنبثقة إذا كان الأمر كذلك.

الشيء هو، أريد أن أفعل ذلك الجانب العميل، ولكن في بلدي وظيفة 'فاليداتيفونكتيون' أنا فقط الحصول على آخر المحدد (أو غير محدد، إذا تم اختياره بالفعل) البند. أنا أعرف كيفية القيام بذلك في التعليمات البرمجية وراء رمز، ولكن أريد أن أفعل ذلك العميل.

رمز أسبكس:

 <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" />

شفرة جافا سكريبت:

 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;
 }

كما قلت، لأن آخر (الامم المتحدة) البند المحدد سوف يكون الوحيد المحدد في صفيف "خيارات"، فإن وظيفة التحقق من صحة العودة دائما صحيح ...

فكرت في ملء مجموعة أخرى في وظيفة جافا سكريبت أخرى باسم "مجموعة مختارة الحقيقية" ومقارنة قيمها مع الخيار المحدد في كل مرة تطلق وظيفة .. ولكن أعتقد أنه ينبغي أن يكون هناك طريقة أفضل.

لذلك ... هل هناك طريقة مباشرة إلى الأمام للحصول على جميع العناصر المحددة من قائمة مولتيشويس في جافاسكريبت؟