полето за въвеждане не се опреснява след потвърждение е невярно в jquery на

имам jquery datepicker, който се добавя динамично в ajax заявка чрез частичен изглед. трябва да направя js проверка след като датата е избрана, така че измислих това-

$(документ).готов(функция () {

    $(document).on('change', 'input[name="ReportDate"]', function () {
        if ($(this).attr('data-isDccmAndReady') == 'True') {

            var d = new Date();
            var currentDate = (d.getMonth() + 1) + "/" + +d.getDate() + "/" + d.getFullYear();

            var dateSelected = $(this).val();

            if (new Date(dateSelected) > new Date(currentDate)) {
                var answer = confirm("The contract has been already reported, are you sure you wish to continue?");

                if (answer) {
                    return true;
                } else {
                 //this is correctly resetting the value
                    $(this).val($(this).attr('data-originalReportDateVal'));//$(this).val() gives the old and the correct value.  
                    return false;
                }
            }
        }

        return false;
    });
});
 </script>

проблемът, когато изберете отказ в полето за потвърждение, стойността на инструмента за избор на дата не се връща към старата стойност в html или не се опреснява.


person joshig    schedule 03.08.2014    source източник
comment
Опитайте $(this).val($(this).data('originalReportDateVal')); Ако не работи, моля, покажете своя HTML   -  person Rob Schmuecker    schedule 04.08.2014


Отговори (2)


http://api.jqueryui.com/datepicker/#method-refresh

       if (new Date(dateSelected) > new Date(currentDate)) {
            var answer = confirm("The contract has been already reported, are you sure you wish to continue?");

            if (answer) {
                return true;
            } else {
                $(this).val($(this).attr('data-originalReportDateVal'));
                $(this).datepicker( "refresh" ); // <-- Try this (or with the right datepicker selector)
                return false;
            }
        }
person Oliboy50    schedule 03.08.2014
comment
съжалявам, че не се получи!! има нещо общо с метода 'on' на jquery, защото когато го промених на $(input[name='ReportDate']).change(function () { all the logic} работи, но проблемът с тази опция е просто стреляй веднъж. - person joshig; 04.08.2014
comment
методът change е просто псевдоним за метода on('change')... така че не, това няма да се задейства само веднъж - person Oliboy50; 04.08.2014
comment
който работи с работа около. Публикувах отговора си. - person joshig; 04.08.2014

Това проработи със заобиколно решение

var id = $(this).attr('id');

$('#' +id).val($(this).attr('data-originalReportDateVal'));

не съм сигурен защо не работи директно с

$(this).val($(this).attr('data-originalReportDateVal'));

person joshig    schedule 04.08.2014