0

我正在使用网站上的模态,但我无法实现某些目标:我正在使用的模态是 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)如果那不可能......我怎样才能使主模式上的按钮首先关闭主模式然后加载辅助模式新内容包含链接 + zip

我试图以最清晰的方式提供这个,我可以把它从我的大脑中解脱出来。我很乐意回答有关此的任何问题,因为我完全理解我可能还没有完全清楚

更多信息...我试过 .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>

为什么我不能使用上述方法将新页面加载到模式中?

4

1 回答 1

1

要更改模态的内容,您可以使用 .load() 来更新模态的 div。

或者,您可以使用 iframe 功能(请参阅http://dev.iceburg.net/jquery/jqModal/中的 #7 )。这将允许您提到的“在模式内导航”。

第二个选项可能需要与它一起加载第二个模式的侦听器,因为我不确定 jqModal 是否允许延迟加载(在初始化后处理注入到 DOM 中的代码......比如 .live())

第三个选项是 hack-n-pray 版本。它会起作用,但你不想使用这个。

于 2011-05-02T14:41:17.267 回答