2011-05-02 63 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