2016-05-25 1 views
0

Was ich versuche zu tun ist, wenn der Benutzer 100 eingibt und lbs wählt, wird es als 100 in der Datenbank speichern, aber wenn der Benutzer kgs ausgewählt sollte es als 45 speichern. Derzeit es spart als alles, was ich in egal geben, was, wenn ich wählen kg oder lbClient-Seite kg zu lb funktioniert nicht richtig

{!! Form::label('weightLb', 'Weight:', array('class' => 'col-md-4 control-label')) !!} 
{!! Form::text('weightLb', $user->weightLb, array('class' => 'form-control')) !!} 
{!! Form::select('weight_unit', array('lbs' => 'lbs', 'kgs' => 'kgs')) !!} 

<script type="text/javascript"> 
$('#weight_unit').change(function() { 
    var v = $('weightLb').val(); 
    if ($('#weight_unit').val() != 'lbs') { 
     $('weightLb').val(v/0.4535923); 
    } 
}); 
</script> 
+0

'$ ('weightLb'). Val();' tut nichts. Sie könnten einfach überprüfen, ob '$ ('# weight_unit'). Val()! == 'lbs'' und den Wert entsprechend anpassen. Suchen Sie Hilfe bei der Speicherung in der Datenbank? – IrkenInvader

+0

Okay, ich habe mein OP aktualisiert. Derzeit speichert es, was auch immer ich in die WeightLb Textfeld in die Datenbank eingeben, egal ob ich kg oder lbs – noname

Antwort

1

wenn Sie Einheiten im laufenden Betrieb berechnet werden soll, als diese richtige Weg wäre:

var weightAmount = $('#weight_amount'); 
 
var weightUnit = $('#weight_unit'); 
 

 
function unitChange() { 
 
    var currentUnit = weightUnit.val(); 
 
    var toReturn = $.trim(weightAmount.val()); 
 
    if (toReturn) { 
 
     toReturn *= currentUnit == 'lbs' ? 2.204623 : .4535923; 
 
     weightAmount.val(toReturn.toFixed(7) * 1); 
 
    }; 
 
}; 
 
weightUnit.on('change', unitChange);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p> 
 
    <input id="weight_amount" /> 
 
    <select id="weight_unit"> 
 
     <option value="lbs">lbs</option> 
 
     <option value="kgs">kgs</option> 
 
    </select> 
 
</p>

Auch auf Fiddle.

Was ich Beratung haben, ist: immer speichern das Gewicht als ein von kg, g oder lbs in der Datenbank. Andernfalls haben Sie Probleme mit Konvertierungen, Vergleichen, Selektionen usw.

+0

Ich kopierte und fügte Ihren Code genau und es wird nicht für mich arbeiten. So seltsam. – noname

+0

Sehen Sie sich die Eingabe an und wählen Sie die IDs aus, die ich verwendet habe: 'weight_amount' und' weight_unit'. Sie haben "WeightLb" verwendet, was nicht für das Feld geeignet ist (kann auch Kilogramm sein). Also, Sie müssen entweder Skript oder HTML ändern. – skobaljic

+0

Ja, ich weiß, zuerst habe ich die Texteingabe in 'WeightLb' geändert und es hat nicht funktioniert. Also habe ich deinen Code genau so kopiert und eingefügt, wie er ist, mit der Eingabe und Auswahl, und es hat immer noch nicht funktioniert – noname