2009-09-17 6 views
0

i 2 Déroulants et 1 zone de texte Dans le menu déroulant1 j'ai les valeurs comme 11.00,11.30,12.00,12.30,13.00, 13.30 Dans le menu déroulant2 j'ai les valeurs comme 11,30,12.00,12,30,13,00, 13,30, 14,00script java pour un changement d'index déroulant sélectionné

une fois que l'utilisateur sélectionne les valeurs dans la liste déroulante 1 et descend 2 un événement se déclenchera dans le menu déroulant 2. où les valeurs sélectionnées de 1 déroulant et déroulant 2 sont prises. la valeur dropdown1 est soustraite de la valeur dropdown2.
si la condition vient comme 11.30 - 11.00 = .30 si .30 est le résultat il devrait être montré comme .50 à la suite dans la zone de texte si la condition vient comme 11.00 - 10.30 = .70 si .70 est le résultat qu'il devrait être présentée comme .50 comme résultat dans la case texte

cette condition doit aussi travailler en javascript

si quelqu'un sait est comment le faire, aidez-moi merci

+0

eh? vous voulez soustraire une fois d'une autre? D'où vient le .70 et comment cela est-il égal à .50? – daddywoodland

+0

Quel devrait être le résultat lorsque la valeur est .10 ou .90? – rahul

+0

devrait-il toujours afficher .50 dans la zone de texte? – Xinus

Répondre

0

Sur un peu d'un coup de tête, j'ai décidé que vous voulez calculer la différence entre deux fois ... me ignorer si ce n'est pas ce que vous êtes après, mais je me figurais le faire en tous cas. Pour le rendre plus facile, j'ai mis les valeurs dans les listes déroulantes au nombre de minutes car travailler avec le temps dans js peut être un mal de balle:

<script type="text/javascript"> 
    $(document).ready(function() {  
     //Calculate the difference when second ddl changes 
     $("#ddl2").change(function() {calculateTimeDiff();}); 
    }); 

    function calculateTimeDiff() { 
    //get the values 
    var time1 = $("#ddl1").val(); 
    var time2 = $("#ddl2").val(); 

    //check everything is in the right state to do the calc 
    if(time1 > time2) { 
     alert("time 1 must be before time 2"); 
    } 
    else {    
     //get the number of mins difference 
     var minsDiff = (time2 - time1);  
     //remove number of hours (60 min chunks) 
     minsDiff = minsDiff % 60; 
     //get hours difference 
     var hoursDiff = time2 - time1 - minsDiff; 
     //if more than none, get the no of whole hours 
     if (hoursDiff > 0) {   
      hoursDiff = hoursDiff/60;   
     } 
     //format mins diff 
     if(minsDiff == 0) { minsDiff = "00"}; 
     //add it to text box 
     $("#text1").val(hoursDiff + ":" + minsDiff);         
    } 
    } 
</script> 

<div id="example"> 
    <select id="ddl1"> 
     <option value="600">10:00</option> 
     <option value="630">10:30</option> 
     <option value="660">11:00</option> 
     <option value="690">11:30</option> 
     <option value="720">12:00</option> 
    </select> 

    <select id="ddl2"> 
     <option value="630">10:30</option> 
     <option value="660">11:00</option> 
     <option value="690">11:30</option> 
     <option value="720">12:00</option> 
     <option value="750">12:30</option> 
    </select> 

    <input type="text" id="text1" /> 
</div> 
+0

merci pour votre réponse – happysmile

1

add « onchange = "calculate()" 'dans votre liste déroulante 2 ajoutez cette fonction javascript

function calculate() 
{ 
    var dropdown1 = document.getElementById('dropdown1') 
    var dropdown2 = document.getElementById('dropdown1') 
    var textbox = document.getElementById('textbox') 
    var a = dropdown1.options[dropdown1.selectedIndex] 
    var b = dropdown2.options[dropdown2.selectedIndex] 
    if((a -b) == what ever you want) 
     textbox.value = what ever you want 
    else if((a -b) == what ever you want) 
     textbox.value = what ever you want 

} 
+0

Salut, merci 4 rejouer. cela me donne pour finir la chose de base où je peux trouver la différence entre 2 nombre 1 condition: où si le résultat est 1.30, 2.30 alors je devrais montrer le résultat intext boîte comme 1.50, 2,50 2 condition: 1,70 , 2.70 alors je devrais montrer la boîte de résultat intext comme 1.50, 2,50 merci – happysmile

+0

var c = ab si (c == 1.30 || c == 2.30) {textbox.value = "1.50,2.50"} sinon si (c == 1.70 || c == 2.70) {textbox.value = "1.50,2.50"} espérons que cela aide, de toute façon avant d'écrire javascript, vous devriez commencer à apprendre un peu sur la langue comme les bases (conditions, boucle, ...) essayez google, vous trouverez beaucoup. – Khodor

0

Code dans jQuery sans la pièce de remplacement. Je ne suis pas sûr de vos 2 conditions. Voulez-vous toujours afficher .50 si le résultat est .30 ou .70.

Mise à jour

<script> 
$(document).ready (function() {  
    $("#sel1").change (function() {  
    CalcResult(); 
    }); 

    $("#sel2").change (function() {  
    CalcResult(); 
    }); 


    function CalcResult() 
    { 
    var resultVal = parseFloat ($("#sel2 option:selected").val()) - parseFloat ("#sel1 option:selected").val());   

    var resultVal = $("#sel2 option:selected").val() - $("#sel1 option:selected").val(); 

    resultVal = resultVal.toFixed("2").toString().replace (".30" , ".50").replace(".70" , ".50"); 

    $("#txt1").val(resultVal.toFixed("2")); 
} 

}); 
</script> 

<body> 
<select id="sel1"> 
    <option value="11.00">11.00</option> 
    <option value="11.30">11.30</option> 
    <option value="12.00">12.00</option> 
    <option value="12.30">12.30</option> 
    <option value="13.00">13.00</option> 
    <option value="13.3">13.30</option> 
    </select> 
    <select id="sel2"> 
    <option value="11.30">11.30</option> 
    <option value="12.00">12.00</option> 
    <option value="12.30">12.30</option> 
    <option value="13.00">13.00</option> 
    <option value="13.30">13.30</option> 
    <option value="14.00">14.0</option> 
    </select> 

    <input type="text" id="txt1" /> 
</body> 
Questions connexes