Динамически загруженная форма и средство выбора даты не инициализируются - PullRequest
0 голосов
/ 26 мая 2011

Ситуация:

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

Проблема:

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

Более того:

Когда я пытаюсь использовать firebug для устранения проблемы, теги сценария и функция jQuery не отображаются в Dom, но я знаю, что этоработает, потому что проверка запускает.

Функция, которая загружает внешний контент:

<script type="text/javascript">
                $('#hpbooking_select input[type=radio]').live('change', function() { //Setting up the chenge  event for the radio button
                    var AffectedRegistration = $(this).parents('#hpbooking_select').parent();
                    //alert($(AffectedRegistration).attr('class'));
                    var ID = $(this).attr('id'); //getting the ID of the radio button
                    var IDArray = ID.split('_'); //seperating the ID into an array
                    var regURL = '/wp-content/themes/1000ik/hpbooking/' + IDArray[1] + '.php'; //building a url to load
                    var childPIPR = $(AffectedRegistration).children('.hpbooking_registration');
                    //alert(regURL); FOR TESTING ONLY
                    //$(childPIPR).html(regURL); FOR TESTING ONLY
                     $(childPIPR).load(regURL); //loading the url

                });
                </script>
            <div id="hpbooking_container">
                <div id="hpbooking_select">
                    <h2>What type of adventure are you looking for?</h2>
                    <fieldset>
                        <input type="radio" class="bookingselect" name="bookingselect" id="bookingselect_guidedtrip" /><label for="bookingselect_guidedtrip">A Guided Trip</label>
                        <input type="radio" class="bookingselect" name="bookingselect" id="bookingselect_course" /><label for="bookingselect_course">A Course</label>
                        <input type="radio" class="bookingselect" name="bookingselect" id="bookingselect_group" /><label for="bookingselect_group">Tour Group</label>
                        <input type="radio" class="bookingselect" name="bookingselect" id="bookingselect_paddlefest" /><label for="bookingselect_paddlefest">Paddlefest 2011</label>
                        <input type="radio" class="bookingselect" name="bookingselect" id="bookingselect_paddleplay" /><label for="bookingselect_paddleplay">Paddle and Play</label>
                    </fieldset>
                </div>

Загруженный внешний код:

<script type="text/javascript">
jQuery(function(){
jQuery("#hpbookingform").validate();
jQuery('.date-pick').datePicker();
}); 
</script>
<form id="hpbookingform" method="post" action="/wp-content/themes/1000ik/engine-hpguidedtrips.php" >
<fieldset><LABEL for="daytrip_date">Date </LABEL><input type="text" value="" class="date-pick dp-applied required" id="daytrip_date" name="daytrip_date" /></fieldset>
</form>

Ресурсы: Плагин DatePicker: http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/index.html

1 Ответ

0 голосов
/ 26 мая 2011

Обычно вы запускаете команды jquery в блоке document.ready, который запускается после полной загрузки страницы.

Я бы переместил тег script в конец страницы.Он должен выполняться после прочтения html-элементов.

...