Поддержка Jquery jqmodal ajax

#jquery #jqmodal

#jquery #jqmodal

Вопрос:

Я использую модал на сайте, и у меня возникают проблемы с достижением чего-либо: Модал, который я использую, — это jqModal, найденный здесь:http://dev.iceburg.net/jquery/jqModal /

У меня нет проблем с инициализацией одного модала.

 <script type="text/javascript">$().ready(function() {
$('#cartdialog').jqm({ajax:'@href',trigger: 'a.jqModalcart'});
});</script>


<a class="jqModalcart" href="/ash/shop/cart2.php"><img src="/ash/images/viewcart.gif" 
alt="viewcart"/></a>
  

Это загрузит мой основной модал, который отображает содержимое cart2.php .

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

Что еще больше усложняет дело, shipping.php необходимо загрузить почтовый индекс, для которого я написал простой валидатор javascript. Ссылка, которую необходимо передать, выглядит следующим образом:

 href=("/ash/shop/shipping.php?zip="   document.form9.zip.value)
  

Я знаю, что могу перенести эту ссылку в модальную, инициализировав ее следующим образом:

 <script type="text/javascript">$().ready(function() {
$('#idhere').jqm({ajax:'@href',trigger: 'a.classhere'});
});</script>
  

Однако, похоже, я не могу «запустить» модал из модального.

Итак, у меня много вопросов: 1) Могу ли я оставить один модальный и изменить то, что загружается через AJAX внутри него (в основном, переход на страницы в одном модальном окне и с них)? ИДЕАЛЬНОЕ РЕШЕНИЕ!!!! 2) Если нет … как я могу создать вложенный модал, который будет отображаться поверх основного модала, И загрузить ссылку выше, для которой требуется информация из моего средства проверки почтового индекса (я могу указать ajax:’linkhere’), но моя ссылка содержит эту часть, добавленную в конец в валидаторе » document.form9.zip.value» 3) Если это невозможно … как я могу заставить кнопку на главном модале СНАЧАЛА закрыть основной модал, А затем загрузить вторичный модал с новым содержимым, СОДЕРЖАЩИМ ссылка почтовый индекс

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

Дополнительная информация … Я пробовал .load () без успеха, но это, скорее всего, потому, что у меня очень мало навыков в этой области. Вот мой скрипт почтового индекса. У меня это так, что после ввода 5 символов ссылка изменяется таким образом, что пользователь сначала видит «введите почтовый индекс», но затем видит «рассчитать доставку», и href также изменяется.

 <script language="javascript">

function movepic(img_name,img_src) {
document[img_name].src=img_src;
}
</script>

<script language="javascript" type="text/javascript">
function limitText(limitField, limitCount, limitNum) {
if (limitField.value.length == limitNum) {
    limitField.value = limitField.value.substring(0, limitNum);

    //switch image out
    javascript:movepic('button','/ash/images/calculateshipping.gif');

    //change image link
    document.getElementById("tester").href=("/ash/shop/shipping.php?zip="   document.form9.zip.value);
    document.getElementById("tester").onclick=function(){$('#cartdialog').load("/ash/shop/shipping.php?zip="   document.form9.zip.value);};

} else {
    limitCount.value = limitNum - limitField.value.length;
}
}
</script>
  

Мой HTML имеет форму…

 <form id="form9" name="form9" method="post" action="">
<a id="tester" name="tester" class="jqModalship" href="#" style="margin-right:4px;"><img name="button" src="/ash/images/enterzipcode.gif" alt="Image"></a>
<input name="zip" type="text" size="5" onKeyDown="limitText(this.form.zip,this.form.countdown,5);" 
onKeyUp="limitText(this.form.zip,this.form.countdown,5);" maxlength="5">
</form>
  

Почему я не могу загрузить новую страницу в модальный режим, используя вышеуказанное?

Ответ №1:

Чтобы изменить содержимое модала, вы могли бы использовать .load() для обновления div модала.

В качестве альтернативы вы можете использовать возможности iframe (см. #7 наhttp://dev.iceburg.net/jquery/jqModal /). Это позволило бы «перемещаться внутри модального», о котором вы упомянули.

Второй вариант, вероятно, потребует загрузки прослушивателя второго модала вместе с ним, поскольку я не уверен, что jqModal допускает отложенную загрузку (работает над кодом, введенным в DOM после инициализации… нравится .live())

Третий вариант — это версия hack-n-pray. Это сработает, но вы не хотите использовать это.

Комментарии:

1. Использование iframe кажется, что это может быть хорошим решением. Я рассмотрю это сегодня вечером. Надеюсь, это не потребует серьезной доработки того, где я это делал до сих пор! Есть ли шанс, что вы могли бы немного расширить метод .load(). Я признаю, что я здесь не профессионал.

2. не совсем уверен, что я полностью понял, как работает этот сайт (часто захожу сюда для поиска, но зарегистрировался только сегодня, потому что не смог найти свой ответ), поэтому я приношу извинения, если вы несколько раз получали уведомления об этом. Я отредактировал свой вопрос после попытки использовать .load() Я был бы очень признателен, если бы вы могли сообщить мне, где я ошибся. Большое спасибо за вашу помощь и дайте мне знать, если я неправильно использовал формат @commentername и он уведомил вас несколько раз

3. вам следует создать новый вопрос с вашей проблемой сейчас, а не редактировать этот вопрос. этот вопрос должен содержать пример кода того, что не работает, вместо всей вашей проблемы. (т. Е. только часть о .load())