2010-01-05 80 views
0
function submitcheck() 
{ 

var f = document.form1; 

if (f.rbTemplate!= null)  
{ 
    ... 
     alert('Please choose template'); 
     return false; 
    ... 
} 

if (f.rbColorId!= null) 
{ 
    ... 
     alert('Please choose template color'); 
     return false; 
    ... 
} 
} 



function ShowColor() 
{ 
    var f= document.form1; 
    iTemplate= getSelectedRadioValue(f.rbTemplate); 

    var params= "iTemplate="+iTemplate; 
    var url= "ajaxColor.php"; 
    doShowOutput(params, url, retrieveColorsAvailableForThisTemplate); 
} 


function retrieveColorsAvailableForThisTemplate() 
{ 
    if(httpObject.readyState == 4) 
    { 
     document.getElementById('showtime').style.display=""; 
     document.getElementById('showtime').innerHTML= httpObject.responseText; 
    } 
} 



    <input type='radio' name='rbTemplate' id=1 value=1 onclick='ShowColor();'> 
<img src="template1.jpg" /> 

<br /> 

    <input type='radio' name='rbTemplate' id=2 value=2 onclick='ShowColor();'> 
<img src="template2.jpg" />  



    <div id=showtime></div>  

當點擊rbTemplate ID = 1,AJAX查詢將返回可用的顏色爲這個模板到ID =欣欣的JavaScript validation- rbColorId對象仍然檢測

如:

<table> 
<tr> 
<td bgColor="#FF0000"><input type=radio name=rbColorId id=1 value=1></td> 
<td bgColor="#FF0007"><input type=radio name=rbColorId id=2 value=2></td> 
<td bgColor="#FF0003"><input type=radio name=rbColorId id=3 value=3></td> 
</tr> 

</table> 

時點擊rbTemplate id = 2,ajax將輸出作爲簡單消息返回到id = showtime,因爲該模板實際上沒有任何顏色選擇)

例如:"<p>this template don't have any color</p>"

現在的問題是:

第1步:之後我點擊rbTemplate ID = 1,並沒有選擇顏色,然後點擊提交(JavaScript的會提示我選擇的顏色),

第2步:然後我點擊rbTemplate id = 2再次重複,再次點擊提交,此時不應提示顏色選擇,因爲這第二個模板沒有顏色。但javascript提示仍然出現。 JS驗證仍然能夠檢測f.rbColorId(也許從高速緩存或...)...幫助...

幫助

回答

0

當你只是輸出從Ajax調用的結果,我會說你需要改變你的邏輯在ajaxColor.php

但是,如果你不真的需要顏色的東西,爲什麼不完全刪除事件?

<input type='radio' name='rbTemplate' id=2 value=2 /> 
+0

它不能被刪除。因爲,用戶必須選擇模板。然後,如果特定模板有多種顏色,用戶必須選擇顏色。如果用戶din選擇顏色,JavaScript會提醒他們選擇。 – 2010-01-05 16:16:20