मुझे सभी विकल्पों का चयन करने के साथ चेकबॉक्स गिनती बनानी है, यह तब काम करता है जब प्रत्येक चेकबॉक्स मैं गिनती का चयन करता हूं, लेकिन जब सभी विकल्प चुनते हैं तो यह काम नहीं कर रहा है, मैं एएसपी.नेट एमवीसी में कार्यान्वित कर रहा हूं, यहां मेरा कोड है जावास्क्रिप्ट

var countChecked = function () {
        var n = $('input[name="DocNames"]:checked').length;
        $("#span").text(n + (n === 1 ? " document is" : " documents are") + " checked!");
    };
    countChecked();
    $('input[name="DocNames"]').on("click", countChecked);

    $('#select_all').click(function (e) {
        $(this).closest('table').find('td input[name="DocNames"]').prop('checked', this.checked);
    })

एचटीएमएल कोड

<table class="table">
<tr>
    <th>Documnet Name</th>
</tr>
<tr>
    <td><label><input type="checkbox" name="select_all" id="select_all" />Select All</label></td>
</tr>
@if (Model.Documents != null)
{
    foreach (var item in Model.Documents)
    {
        <tr>
            <td>
                <label>
                    <input type="checkbox" name="DocNames" value="@item.DocumentName.Trim()" />
                    @item.DocumentName.Trim()
                </label>
            </td>
        </tr>
    }
}
else
{

    <tr>
        <td>@ViewBag.NoDocuments</td>
    </tr>
}
<div id="span"></div>
0
Amarnath 28 जिंदा 2019, 10:02

1 उत्तर

सबसे बढ़िया उत्तर

यदि आपने अभी तक @ एंड्रियास के सुझाव (जो सही उत्तर है) के साथ अपनी समस्या का समाधान नहीं किया है, तो मैं इसे एक उत्तर प्रारूप में फिर से वाक्यांश दूंगा:

अपने कोड में, आपने प्रत्येक चेकबॉक्स के क्लिक-इवेंट पर countChecked() को कॉल किया था। और इसलिए, countchecked() जो करता है वह करता है।

लेकिन SelectAll चेकबॉक्स के लिए आपके ईवेंट हैंडलर में, आप फिर से countchecked() को कॉल करना भूल रहे हैं।

तो आपको या तो इसे अपने कोड के अंत में कॉल करना होगा, जैसे:

$('#select_all').click(function (e) {
    $(this).closest('table').find('td input[name="DocNames"]').prop('checked', this.checked);
    countChecked();
})

या, अधिक अनाड़ी रूप से, अपने किसी भी चेकबॉक्स के लिए क्लिक की घटना को ट्रिगर करें।

लेकिन उपरोक्त सबसे अच्छा है।

3
Omar Ali Ibrahim 28 जिंदा 2019, 10:28