2012-12-03 33 views
1

我正在使用SimpleModal基本模態對話框,當我試圖實現跳轉菜單更改時的模式窗口彈出窗口時,將打開對話框,但我很快重定向到一個url不存在。SimpleModal基本模態窗口顯示無效頁面

如何防止發生這種情況?

這裏是我的跳躍菜單HTML:

<select name="fieldname" size="1" onChange="go()" class="select" > 
       <option selected="selected"><em>Questions Bulk Edit Options...</em></option> 
       <option value="http://74.39.250.15/questions_listing.asp?categoryState=1">Change Category Assignments</option> 
       <option class="basicConfirmapprove" href="#">Change Status to Approved</option> 
       <option value="http://74.39.250.15/questions_listing.asp?categoryState=2">Move to Another Folder</option> 
      </select> 

這裏是我的頁面的JavaScript:

<script type="text/javascript"> 
<!-- 
function go(){ 
location= 
document.Category.fieldname. 
options[document.Category.fieldname.selectedIndex].value 
} 
//--> 
</script> 

這裏是我的模態窗口HTML:

<div id="basic-modal-confirmapprove"> 
      <% 
'Page Preferences 
PageName = "" 
%> 

<!--#include file="header_modal.asp"--> 
<div><center>Are you sure you want to approve all the selected items?</center></div> 
    <br /> 
<div align="center"><a href="#" class="button simplemodal-close">Cancel</a>&nbsp;&nbsp;<a href="#" class="keybutton simplemodal-close">OK</a></div> 
<!--#include file="footer_modal.asp"--> 

這裏是我的用於模態窗口的JavaScript:

// Load dialog on click 
$('#basic-modal .basicConfirmapprove').click(function (event){ 
    $('#basic-modal-confirmapprove').modal(); 

    return false; 
}); 

如何防止跳轉到「.... com /將狀態更改爲已批准」url?顯然它不存在。如果我點擊後,它會完美地顯示前一個帶有模式窗口的窗口。

克里斯

回答

1

因爲你擁有的onchange =「走()」事件處理程序有線了,該代碼會立即執行下拉值的變化。如果該值以「http」開頭

var redirectValue = document.Category.fieldname.options[document.Category.fieldname.selectedIndex].value; 

if (redirectValue.substring(0,4) == "http") 
{ 
    window.location = redirectValue; 
} 

這樣重定向纔會發生,如果他們選擇basicConfirmapprove那麼你應該:你將需要把這樣的事情,如果你不希望重定向安全

希望這會有所幫助。

+0

Thank @Roysvork!像魅力一樣工作! – boy

+1

很高興能幫到你!只要確保你測試了redirectValue小於4個字符長度會發生什麼,我不確定它是否會崩潰。目前不是你的問題,但最好檢查! –