Поддержка JQuery JQModal AJAX

Я пользуюсь модалом на сайте, и у меня возникают проблемы с достижением чего-то: модал, который я использую, - это 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())

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

Другие вопросы по тегам