Tidak mendapatkan pesan validasi untuk @Html.DropDownListFor() setelah jquery Terpilih digunakan

Kode diberikan di bawah ini:
Jika saya tidak memilih nilai apa pun di kotak kombo dan menekan kirim, tidak ada pesan validasi yang diminta.

<tr>
            <td>Department </td>
            <td> : </td>
            <td class="@*@Model.NoEdit*@">    
                @Html.DropDownListFor(m => m.DepartmentId, new SelectList(Model.Departments, "SelectedDepartmentId", "DepartmentCode"), "-- Select Department--", new {@class = "chosen-select", id = "cboDeptartment" })
                @Html.ValidationMessageFor(model => model.DepartmentId)
            </td>

person Joseph    schedule 06.01.2014    source sumber
comment
dimana kode jquerynya?   -  person Cris    schedule 06.01.2014
comment
Saya tidak yakin saya memahami Anda. Terpilih adalah plugin jquery. Tersedia di situs ini harvethq.github.io/ dipilih   -  person Joseph    schedule 06.01.2014


Jawaban (3)


Mengulang kembali komentar singkat saya sebagai jawaban. :-)

Untuk mendapatkan pesan validasi, saya menggunakan pendekatan yang sama yang disebutkan Joseph, meskipun saya menggunakan kelas HTML untuk pilihan yang saya gunakan dengan Terpilih. Misalnya:

validator.settings.ignore = ":hidden:not(.select-chosen)";

Untuk menghapus pesan validasi ketika suatu nilai dipilih, Anda perlu melampirkan pemroses peristiwa untuk peristiwa "perubahan" dan secara eksplisit memaksa validasi ulang pemilihan tersebut. Jadi misalnya, dengan asumsi Anda memiliki variabel select yang mereferensikan kotak pilih:

select.on("change", function(evt, params) {
    $(evt.target).valid();
});

Terpilih memicu peristiwa "perubahan" tersebut setiap kali nilainya berubah.

person Mike Brennan    schedule 23.01.2014
comment
Saya memiliki masalah yang sama, saya menambahkan baris Validator.settings... tetapi sekarang ketika saya mengklik tombol, model saya tidak muncul lagi - person Chlebta; 14.05.2014

Terpecahkan setelah banyak penelitian...

$(document).ready(function () {
    var validator = $("#Your_form_id").data('validator');
    validator.settings.ignore = ":hidden:not(select)";
});

person Joseph    schedule 07.01.2014
comment
Sekarang berfungsi tetapi tidak menghapus pesan validasi ketika saya memilih nilai ke daftar dropdown. Ini hanya berbunyi ketika saya menekan tombol Kirim. - person Joseph; 07.01.2014
comment
Joseph, apakah Anda menyelesaikan masalah dengan menghapus pesan validasi ketika suatu nilai dipilih? Saya mencoba menyelesaikannya sekarang. - person Mike Brennan; 22.01.2014
comment
Oke, temukan solusinya. Dengan asumsi kotak pilih direferensikan oleh variabel select: select.on('change', function(evt, params) { $(evt.target).valid(); }); Ini memaksa validasi lapangan. - person Mike Brennan; 22.01.2014
comment
Terima kasih @MikeBrennan, saya akhirnya menggunakan dropdown bootstrap. tetapi bisakah Anda mempostingnya sebagai jawaban sehingga saya dapat menandainya sebagai jawaban.. mungkin bisa membantu smone di masa depan :) - person Joseph; 22.01.2014
comment
@MikeBrennan di mana menambahkan Fungsi pilih Saya mencoba ini $(document).ready(function () { var validator = $("#form").data('validator'); validator.settings.ignore = ":hidden:not(.chosen-select)"; }); select: select.on('change', function (evt, params) { $(evt.target).valid(); }); - person Chlebta; 14.05.2014

Jadi selaraskan jawaban di atas dengan benar

 $(function () {
        var validator = $("#Your_form_id").data('validator');
        validator.settings.ignore = ":hidden:not(.chosen-select)";
        $(".chosen-select").chosen();
        $("#Your_dropdown_id").change(function (evt, params) {
            $(evt.target).valid();
        })

    });
person ksg    schedule 03.03.2015