2010-09-16 6 views
0

J'ai créé 2 menus déroulants, de et à, ceux-ci incluent les heures à partir de 8> 22:00, mais en soumettant le formulaire, il me demande de sélectionner une heure de début qui a déjà été sélectionné et confirmé par une option d'alerte que j'ai inclus, m'a vraiment confondu !! toute aide appréciée.javascript drop down loop if instruction

craig

window.status='Loading contingency scripts - please wait...'; 
audit('Loading contingency scripts'); 
var conting={ i:0 

,start:function(){ 
window.status='Loading form - please wait...'; 
var t=''; 
t+='<form name="frm_conting" id="frm_conting" onsubmit="return false;">'; 
t+='<table width="100%" cellspacing="1" cellpadding="0">'; 
t+='<tr><td>Date (DD/MM/YY):</td><td><input type="text" size="8" value="'+current_date+'" id="date"></td></tr>'; 

t+='<tr><td>Time Started:</td><td><select id="timefrom"><option></option>'; 
    for(h=8;h<23;h++){ 
     for(m=0;m<46;m=m+15){ t+='<option value='+nb[h]+':'+nb[m]+'>'+nb[h]+':'+nb[m]+'</option>'; }; 
    }; 
t+='</select></td></tr>'; 

t+='<tr><td>Time Finished:</td><td><select id="timefrom"><option></option>'; 
    for(h=8;h<23;h++){ 
    for(m=0;m<46;m=m+15){ t+='<option value='+nb[h]+':'+nb[m]+'>'+nb[h]+':'+nb[m]+'</option>'; }; 
    }; 

t+='</select><tr><td>Extension #:</td><td><input type="text" size="5" value="'+my.extension+'" id="staffid"></td></tr>'; 
t+='<tr><td>Desk ID:</td><td><input type="text" size="5" value='+my.deskid+' id="desk"></td></tr>'; 
t+='<tr><td>Number of calls:</td><td><input type="text" size="5" id="calls"></td></tr>'; 
t+='<tr><td>Avid ID:</td><td><input type="text" size="5" id="avid"></td></tr>'; 
t+='<tr><td><input type="button" value="Submit" onClick="conting.save()"></td>'; 
t+='</table>'; 
t+='</form>'; 

div_form.innerHTML=t; 
window.resizeTo(400,385); 
window.status=''; 
} 


,save:function(){ 
alert (frm_conting.timefrom.value); 
    var conting_date=frm_conting.date.value; 
    if(!isdate(conting_date)){alert("You have entered an incorrect date.");return false;}; 

var conting_timefrom=frm_conting.timefrom.value; 
if(isNaN(conting_timefrom)){alert("You need to enter a starting time.");return false;}; 
if(conting_timefrom.value>conting_timeto.value){alert("The time you have entered is after the finish time.");return false;}; 

var conting_timeto=frm_conting.timeto.value; 
if(isNaN(conting_timeto)){alert("You need to enter a finishing time.");return false;}; 
if(conting_timeto.value<conting_timefrom.value){alert("The time you have entered is after the finish time.");return false;}; 

var conting_staffid=frm_conting.staffid.value; 
if(conting_staffid.length!=5) { alert("You have entered an incorrect extension number.");return false;}; 

var conting_desk=frm_conting.desk.value; 
if(conting_desk.length!=5) { alert("You have entered an incorrect desk ID.");return false;}; 

var conting_calls=frm_conting.calls.value; 
if(isNaN(conting_calls)){alert("You have not entered amount of calls.");return false;}; 

var conting_avid=frm_conting.avid.value; 
if(isNaN(conting_avid)){alert("You have entered an incorrect avid ID.");return false;}; 
if(conting_avid.length!=5) { alert("You have entered an incorrect avid ID.");return false;}; 

conn.open(db["contingency"]); 
rs.open("SELECT MAX(prac_id) FROM practice",conn); 
var prac_id=rs.fields(0).value+1; 
rs.close(); 
rs.open("INSERT INTO practice (prac_id, prac_staffid, prac_date, prac_timefrom, prac_timeto, prac_extension, prac_desk, prac_calls, prac_avid) VALUES (1, 2, 3, 4, 5, 6, 7, 8, 9)",conn); 
conn.close(); 



} 


}; 
window.status=''; 

enter code here 
+0

Veuillez reformater le code. – Dutchie432

+0

ne pensez-vous pas que vous devriez commencer par "J'ai deux listes déroulantes, une appelée start_time et une autre appelée end_time ..."? – jrharshath

+0

oui je devrais vraiment fait, désolé. – craigg

Répondre

1

bien un de vos problèmes est que vous utilisez le même identifiant sur les deux listes de sélection. Il est difficile de juger le reste des problèmes étant donné le code.

t+='<tr><td>Time Started:</td><td><select id="timefrom"><option></option>'; 
    for(h=8;h<23;h++){ 
     for(m=0;m<46;m=m+15){ t+='<option value='+nb[h]+':'+nb[m]+'>'+nb[h]+':'+nb[m]+'</option>'; }; 
    }; 
t+='</select></td></tr>'; 

t+='<tr><td>Time Finished:</td><td><select id="timefrom"><option></option>'; 
    for(h=8;h<23;h++){ 
    for(m=0;m<46;m=m+15){ t+='<option value='+nb[h]+':'+nb[m]+'>'+nb[h]+':'+nb[m]+'</option>'; }; 
    }; 
+0

qui a trié le problème de la forme en sachant quel temps a été sélectionné ce que l'alerte que j'ai ajouté à brainstorm la faute a dit. donc merci pour ça !! Cependant, le problème est maintenant le code revient en disant que vous devez entrer une heure de départ, ce qui a déjà été fait ... confus – craigg

0
<option value='+nb[h]+':'+nb[m]+'>' 

Les js sauver routine échoue à chaque fois que la valeur est un nombre (isNaN). La valeur a deux points, donc ce n'est jamais un nombre. Vous n'avez pas besoin de vérifier isNaN, parce que c'est un menu déroulant, donc vous contrôlez ce qui y est entré, contrairement à une boîte de texte où vous pouvez utiliser isNaN pour être sûr que l'utilisateur a tapé un nombre.

+0

merci c'est un bon point, alors comment comparer les deux déroulants pour s'assurer que par exemple 08: 00 est une heure d'arrivée et 22h00 est une heure de début retourne comme faux? – craigg

+0

sortez les portions des heures et des minutes et comparez-les –