2016-02-08 9 views
6

Ciao ragazzi, ecco il problema. Voglio eseguire un calcolo diverso in base alla casella di controllo.Come modificare il valore della casella di controllo quando è selezionata o deselezionata

<div> 
COD: <input type="checkbox" id="trigger" name="question" > 
</div> 

Ecco il javascript per il calcolo del prezzo del prodotto il problema è che io non so come posso fare il resto se il metodo

<script> 
    $("#price,#quant,#shipment").keyup(function() { 
     if(+myFunction3() =="") 
     { 
     $('#demo').val(0); 
     } 
     else if($('#trigger')=="checked") //this is the problem 
     { 
     $('#demo').val($('#price').val() * $('#quant').val() ; 
     } 
     else 
     { 
     $('#demo').val($('#price').val() * $('#quant').val() + +myFunction3()); 
    } 
    }); 
    </script> 

Advance grazie ragazzi.

+3

prova: - '$ ('# trigger') è. (": Controllati")' – BenG

+2

Prova questo $ ('# trigger'). Is (': checked'), resource http://api.jquery.com/is/ – Haris

+1

Se quanto sopra non funziona, il modo verboso per ottenere lo stato è documentare .getElementById ("trigger"). checked – Nathan

risposta

2

utilizzando jQuery si poteva fare:

else if($('#trigger:checked').length > 0) 

o

else if($('#trigger').is(':checked')) 

Se si desidera eseguire nuovamente il calcolo quando una l'utente controlla o deseleziona la casella di controllo, è possibile eseguire lo stesso codice eseguito sulla funzione keyup su:

$('#trigger').change(function() { 
    ... 
}) 
+0

come posso renderlo come onkeyup? perché ad esempio $ ('# demo'). val ($ ('# price'). val() * $ ('# quant'). val() + + myFunction3()); viene calcolato quando ho controllato che il valore non cambi automaticamente –

+0

@Jonas Dulay si desidera eseguire nuovamente il calcolo quando si seleziona la casella? –

+0

Sì sì sì .. Questo è quello che mi serve –

0

Lo script dovrebbe essere simile a questo:

<script> 
    $("#price, #quant, #shipment").keyup(function() { 
     if(+myFunction3() =="") 
     { 
     $('#demo').val(0); 
     } 
     else if ($('#trigger').is(':checked')) { //this is the problem 

     $('#demo').val($('#price').val() * $('#quant').val() ; 
     } 
     else 
     { 
     $('#demo').val($('#price').val() * $('#quant').val() + +myFunction3()); 
    } 
    }); 
    </script> 
+0

c'è un bug bro ... –

+0

come posso renderlo come onkeyup? perché ad esempio $ ('# demo'). val ($ ('# price'). val() * $ ('# quant'). val() + + myFunction3()); è calcolato quando ho controllato il valore non cambia automaticamente –

+0

Ho modificato il codice. –

0

Prova questo:

<script> 
    $("#price,#quant,#shipment").keyup(function() { 
     if(+myFunction3() =="") 
     { 
     $('#demo').val(0); 
     return; 
     } 

     var isCOD = $('#trigger').is(':checked'); 
     var val = $('#price').val() * $('#quant').val(); 

     if (isCOD) 
     { 
     val += myFunction3(); 
     } 

     $('#demo').val(val); 
    } 
    }); 
    </script> 
0

Prova questa condizione in altro se:

else if($('input#trigger[type=checkbox]').is(":checked")) 
Problemi correlati