диапазон дат, подсказывающий модальное использование, не может использоваться в качестве переменных в пределах указанного модального - PullRequest
1 голос
/ 10 марта 2020

на своей странице бронирования я выбираю 2 диапазона дат, которые затем представляют модальное всплывающее окно. Я пытаюсь работать в пределах модальных двух диапазонов дат (ie дней между ними, день начала бронирования и т. Д. c).

Выполнение этого на главной странице - это хорошо, но мои значения не соответствуют работая в модальном всплывающем окне. Я думаю, это потому, что значения, с которыми мне нужно работать, - это те, которые на самом деле вызывают всплывающее окно.

<!-- Modal -->


<div class="modal fade" id="owner_price_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog custom_price_dialog">
        <div class="modal-content">

            <div class="modal-header"> 
              <button type="button" id="close_custom_price_internal" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
              <h2 class="modal-title_big"><?php esc_html_e('Custom Price','wprentals');?></h2>
              <h4 class="modal-title" id="myModalLabel"><?php esc_html_e('Set custom price for selected period - test','wprentals');?></h4>
            </div>


            <div class="modal-body">

                <div id="booking_form_request_mess_modal"></div>    

                    <div class="col-md-6">
                        <label for="start_date_owner_book"><?php esc_html_e('Start Date','wprentals');?></label>
                        <input type="text" id="start_date_owner_book" size="40" name="booking_from_date" class="form-control" value="">




                    </div>

                    <div class="col-md-6">
                        <label for="end_date_owner_book"><?php  esc_html_e('End Date','wprentals');?></label>
                        <input type="text" id="end_date_owner_book" size="40" name="booking_to_date" class="form-control" value="">
                    </div>


                    <input type="hidden" id="property_id" name="property_id" value="" />
                    <input name="prop_id" type="hidden"  id="agent_property_id" value="">

                    <div class="col-md-6">
                        <label for="coment"><?php echo esc_html__( 'New Price in ','wprentals').' '.esc_html($wp_estate_currency_symbol);?></label>
                        <input type="text" id="new_custom_price" size="40" name="new_custom_price" class="form-control" value="">
                    </div>    


                <div class="col-md-6">
                    <label for="period_extra_price_per_guest"><?php echo wpestate_show_labels('extra_price_per_guest',$rental_type,$booking_type).' '.esc_html($wp_estate_currency_symbol);?></label>
                    <input type="text" id="period_extra_price_per_guest" size="40" name="period_extra_price_per_guest" class="form-control" value="0">
                </div> 

                <div class="col-md-6">
                    <label for="period_week_price"><?php  echo wpestate_show_labels('price_week_label',$rental_type,$booking_type);?></label>
                    <input type="text" id="period_week_price" size="40" name="period_week_price" class="form-control" value="">
                </div> 

                <div class="col-md-6">
                    <label for="period_month_price"><?php echo wpestate_show_labels('price_month_label',$rental_type,$booking_type);?></label>
                    <input type="text" id="period_month_price" size="40" name="period_month_price" class="form-control" value="">
                </div>       

                <div class="col-md-6">
                    <label for="period_price_per_weekeend"><?php echo esc_html__( 'Price per weekend in ','wprentals').' '.esc_html($wp_estate_currency_symbol);?></label>
                    <input type="hidden" id="period_price_per_weekeend" size="40" name="period_price_per_weekeend" class="form-control" value="">



                </div>
                     <div class="col-md-6">
                    <label for="period_min_days_booking"><?php echo esc_html__( 'Minimum days of booking','wprentals');?></label>
                    <input type="text" id="period_min_days_booking" size="40" name="period_min_days_booking" class="form-control" value="">
                </div>




                <div class="col-md-6">
                    <label for="period_checkin_change_over"><?php echo esc_html__( 'Allow only bookings starting with the check in on changeover days','wprentals');?></label>
                    <select id="period_checkin_change_over" name="period_checkin_change_over" class="select-submit2">
                        <?php 
                        foreach($week_days as $key=>$value){
                            print '   <option value="'.esc_attr($key).'">'.esc_html($value).'</option>';
                        }
                        ?>
                    </select>
                </div>

                <?php
                $ajax_nonce = wp_create_nonce( "wprentals_custom_price_nonce" );
                print'<input type="hidden" id="wprentals_custom_price" value="'.esc_html($ajax_nonce).'" />    ';
                ?>

                <button type="submit" id="set_price_dates" class="wpb_button  wpb_btn-info  wpb_regularsize   wpestate_vc_button  vc_button"><?php esc_html_e('Set price for period','wprentals');?></button>


            </div><!-- /.modal-body -->
        </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div><!-- /.modal -->

Я получил отзыв, что это так же просто, как показано ниже, однако это работает в основном страница (только для целей тестирования) не работает в модальном режиме. Внутри модального режима я получаю недопустимую дату, которая, по моему мнению, связана с тем, что start_date_owner_book и end_date_owner_book возвращаются в виде пустых значений при первой загрузке модала.

var startDate = new Date($("#start_date_owner_book").val());
var endDate = new Date($("#end_date_owner_book").val());

var timeDifference = endDate - startDate;
var differenceInDays = timeDifference / (1000*3600*24);
$("#period_min_days_booking").val(Math.floor(differenceInDays));

Любая помощь приветствуется. С уважением

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Спасибо cassiolacerda.

Это было потому, что я пытался сделать дату в первых 2 строках, этот ввод был в формате uk, поэтому он выдавал ошибку всякий раз, когда значение дня (в моем поле это было dd -мм-гггг) было старше 13 лет или старше. Сначала я должен был разбить его на части, затем восстановить, а затем получить дату.

0 голосов
/ 10 марта 2020

Сначала отключите select2 в двух выбранных вами датах и ​​смотрите пока возвращается пустое. Если вы обнаружили, что select2 вызывает проблему, удалите атрибут tabindex="-1" в теге модальной группы.

...