2011-05-02 60 views
0

我正在使用模式的一个网站,我无法实现的东西: 我使用的模式是jqModal在这里找到:http://dev.iceburg.net/jquery/jqModal/jQuery的jqmodal Ajax支持

我有没有问题,初始化一个模式。

<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”),但我的链接3)如果这是不可能的...我怎样才能使主模态上的按钮FIRST关闭主模态然后加载新内容的辅助模态包含链接+邮编

我试图以最清晰的方式提供此信息,从而可以将其从我的大脑中取出。我会很乐意回答任何相关的问题,因为我完全理解我可能还没有完全清楚

更多信息...我曾尝试没有成功.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功能(请参阅http://dev.iceburg.net/jquery/jqModal/上的#7)。这将允许你提到的'在模态内导航'。

第二个选项可能需要加载第二个模态的侦听器以及它,因为我不确定jqModal允许延迟加载(处理初始化后注入到DOM中的代码...就像.live())

第三个选项是一个黑客祈祷verion。它会工作,但你不想使用这个。

+0

iframe的使用看起来可能是一个很好的解决方案。我今晚会研究它。希望它不会需要一个重大的改造,我已经采取了这个迄今为止!任何机会都可以在.load()方法上扩展一点点。我承认我不是这里的亲。 – livinzlife 2011-05-02 15:12:50

+0

不太确定我已经掌握了这个网站如何工作,但完全(经常来这里搜索,但今天刚刚签署,因为我找不到我的答案) 所以我很抱歉,如果你多次通知你。我尝试使用.load()后编辑了我的问题。如果您能让我知道我出错的地方,我将非常感激。 非常感谢您的帮助,如果我错误地使用了@commentername格式并且多次通知您 – livinzlife 2011-05-02 18:52:24

+0

您应该立即为您的问题创建一个新问题,而不是编辑此问题。那个问题应该包含什么不起作用的示例代码,而不是你的整个问题。 (即只是关于.load()的部分) – helloandre 2011-05-03 00:35:56