2016-07-01 34 views
-1

Ich versuche, ein Formular mit einer kurzen Berechnung zu machen, um herauszufinden, Rahmengrößen für Fahrräder.Berechnung in jQuery Form

Die Berechnung ist: Länge * 0,68 = Rahmengröße. Wenn jedoch die Option Sattelspitze ausgewählt ist, sollte ein Abzug von 4 (der berechneten Rahmengröße) vorgenommen werden.

Dies ist, was ich bisher:

$("select[name='length']").change(function(){ 
    var $l = $('length[name='length']'); 
    if($l.length >140){ 
     var m = parseInt($l.val(), 10) 
     $("#result").val(l*0.68); 
    } else { 
     $("p").text("Hello world!"); 
    }  
}); 

<form> 
    <input type="text" value"" name="length"> 
    <input type="radio" name="type" value="nopin"> Zadelpen 
    <input type="text" value="" id="result"/> 
</form> 
<p></p> 

Und die Geige ist hier: https://jsfiddle.net/m2qnf3jm/

Wie Sie es mich sehen, kann kein Ergebnis geben. Ich bin neu bei jQuery und habe versucht, den Tutorials zu folgen, die ich zu diesem Thema finden konnte. Ich schätze, ich brauche einen Knopf, um die Berechnung zu starten. Und wie ziehe ich am Ende ab, wenn die Option Sattel-Pin ausgewählt ist?

Es gibt auch eine Mindestlänge von 140, also habe ich versucht, etwas zu wiederholen, wenn jemand einen niedrigeren Wert eingibt.

+1

Das Problem ist '$ ('length [name =' length ']');' mit dem Selektor (* length ist kein Element *) und die Anführungszeichen ''''. Und überprüfen Sie die Konsole auf Fehler –

Antwort

0

Ihre HTML und Javascript viel Tippfehler und ungültige Syntax. Versuchen Sie folgendes:

$('document').ready(function() { 
 
    $('input[name="length"]').on('change', function() { 
 
    var lengVal = $(this).val(); 
 
    var m = parseFloat(lengVal) * 0.68; 
 
    
 
    $('#result').val(lengVal > 140 ? m : 'Hello World!'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
<input type="text" value="" name="length"> 
 
<input type="radio" name="type" value="nopin"> Zadelpen 
 
<input type="text" value="" id="result"/> 
 
</form>

+0

Vielen Dank, ich werde bewerten, was schief gelaufen ist. Allerdings bekomme ich nicht die letzte Regel, was 14? m tun? Und ich versuche, die Berechnung in der Box zu zeigen, nicht die "Hallo Welt". Die HTML-Ausgabe ist für, wenn jemand etwas kleiner als 140 eingibt. – Kelly

+0

@Kelly Es ist eine Kurzschrift wenn Aussage. Wenn lengVal> 140 wahr ist, wird der Ausdruck links vom ":" ausgewählt, andernfalls wird der Ausdruck rechts vom Semikolon verwendet. So tut es, was Sie gefragt haben, wenn die Eingabe <= 140 ist, wird es uns "hallo Wort!" –

+0

Ah verstehe ich jetzt! Vielen Dank. – Kelly

1

Die Onchange Ereignis scheint ein wenig schief.

$().ready(function() { 
    //PAGE READY FUNCTION - THE PLACE TO BIND EVENTS 
    $("input[name='length']").on('change, keyup', function() { 
     var length = $(this).val(); 
     if($l.length >140) 
     { 
      var m = parseFloat(length); 
      var value = m * 0.68; 
      $('p').html("NORMAL"); 
      if($('#radio_button').is(':checked')) 
      { 
       value = value - 4; 
       $('p').html("ZANDELPEN"); 
      } 
      $("#result").val(l*0.68); 
     } 
     else  
     { 
      $("p").text("Too Short!"); 
     } 
     }); 

}); 

EDIT

spät Too scheint es. Aber der Radioknopfcode ist für dich da.

Good Luck

1

Hier ist Ihre Lösung

$('document').ready(function(){ 
    $('[name="length"]').on('change', function(){ 
     var l = $(this).val(); 
     if(l > 140){ 
      $("#result").val(parseInt(l) * 0.68); 
     } 
     else{ 
      $("p").text("Hello world!"); 
     } 
    }); 
}); 
2

$('#cacl_btn').on('click',function() { 
 
$("p").text(''); 
 
    var $l = $('input[name="length"]').val(); 
 
    
 
    if ($l >= 140) { 
 
    var m = $l * 0.68; 
 
var deduction=$('input[name="type"]').prop('checked')?4:0; 
 
    $("#result").val(Math.round(m*100)/100-deduction); 
 
    
 
    } else { 
 
    $("p").text("length couldn't be <140"); 
 
     $("#result").val(''); 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<form> 
 
    <input type="text" value "" name="length"> 
 
    <input type="checkbox" name="type"> Zadelpen 
 
    
 
    <input type="button" id="cacl_btn" value="calculate"> 
 
    <input type="text" value="" id="result" /> 
 
</form> 
 
<p></p>

Wenn ich Ihre Berechnungen richtig verstehen, versuchen Sie diesen Code

auch zu laufen, in Ihrem Geige hast du vergessen, einen Link zu jque hinzuzufügen ry

Ich rate Ihnen auch, ID für Eingaben oder Klassennamen zu verwenden.