#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())