2013-02-26 40 views
0

我正在一個HTML「窗體」與可選值。我希望當我選擇一個值時,頁面會加載一個URL,同時我會重置表單(選擇默認值,代碼選擇=「selected」)。可複製的形式與網址

我可以分別得到兩個結果。如果我嘗試使這些工作在一起頁面加載只有一個功能(在桌面瀏覽器的工作,但我需要他們在移動工作)

我需要,因爲如果用戶,在選擇一個值後,決定回頭在前面的頁面,會發現價值選擇,他不能再選擇它

我告訴你的代碼,一個與jQuery和其他無:

/////// //////////////////////////////////////////// jquery

<head> 

<script type='text/javascript' src='jquery.min1.7.2.js'></script> 

<SCRIPT LANGUAGE="Javascript"> 
$(function(){ 
// bind change event to select 
$('#titolo').on('change', function() { 
var url = $(this).val(); // get selected value 
if (url) { // require a URL 
this.selectedIndex = 0; 
window.location = url; // redirect 
} 
return false; 
}); 
}); 
</script> 

</head> 

<body> 

<form name="contatto" id="contatto"> 
<SELECT name="titolo" size="1" id="titolo" style="WIDTH: 441px" LANGUAGE="javascript"> 
<OPTION selected="selected"></OPTION> 
<OPTION value="www.ciao.it">01</OPTION> 
<OPTION value="www.ciao1.it">02</OPTION> 
<OPTION value="www.ciao2.it">>03</OPTION> 
</SELECT> 
</form> 

</body> 

/////////////////////////////////////////////////// //////// without

<head> 

<SCRIPT LANGUAGE="Javascript"> 
function resetcampi() { 
document.forms['contatto'].titolo.selectedIndex = 0; 
} 
</script> 

</head> 

<body> 

<form name="contatto" id="contatto"> 
<SELECT name="titolo" size="1" id="titolo" style="WIDTH: 441px" LANGUAGE="javascript" 
onchange="location.href=contatto.titolo.value; resetcampi()"> 
<OPTION selected="selected"></OPTION> 
<OPTION value="www.ciao.it">01</OPTION> 
<OPTION value="www.ciao1.it">02</OPTION> 
<OPTION value="www.ciao2.it">>03</OPTION> 
</SELECT> 
</form> 

</body> 

////////////////////////////////// ////////////////////////

有些幫助?

+0

即使您重置形式某些瀏覽器保存的值的緩存,這樣它仍然會被選中。如果我是你,我會在你進入頁面時重置表單。 – Jules 2013-02-26 17:51:31

回答

0

某些瀏覽器會將表單數據存儲在其緩存中,並且會自動用最後一個數據填充表單。所以,如果我是你,我會重新在頁面加載形式:

<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
     //Reset the form when you load the page 
     resetForm(); 

     //Go to the selected URL when the user selects a url 
     $('#titolo').change(function() { 
     var url = $(this).val(); 
     if (url.length > 0) { 
      window.location = url; 
     } 
     }); 
    }); 

    function resetForm() { 
     $('#contatto').each(function() { 
     this.reset(); 
     }); 
    } 
</script> 
+0

問題不在於瀏覽器緩存。問題在於,在加載url之前,頁面無法快速重置表單。如果清除表單,當我回到我的手機中的上一頁時,不會加載url – user2112273 2013-02-26 18:35:10

+0

,頁面不會重新加載 – user2112273 2013-02-26 18:54:35

+0

然後,您應該將url存儲在變量中。清除表單然後重定向到您存儲的網址。但問題是有些瀏覽器正在存儲formdata。之前有過這個問題,例如IE的某些版本在重定向之前清除表單之後仍然顯示formdata。沒有意義。但唯一的解決方案是在頁面加載時清除它。試一試。我以前在這個問題上花了數小時。 – Jules 2013-02-26 22:03:19