# Mit JavaScript ein Wert in ein Input Feld schreiben



## Timo1 (13. Juni 2013)

Hallo zusammen,

ich bin neu hier, also tut mir leid wenn ich irgendetwas falsch mache.
Die Sachen die ich per Google gefunden habe, haben bei mir leider nicht funktioniert.

Also folgendes Problem:

Auf meiner Seite habe ich ein Input Feld wo man einen Betrag eingeben kann, davor ein Label mit + und -, diese wechseln auch schon beim anklicken einer Checkbox.
Jetzt ist das bei mir so, dass der Wert des Input Feldes an die nächste Seite weiter gegeben wird, aber wie kann ich es am besten lösen, dass das Input Feld auch das - oder + davor geschoben bekommt.

Also z.B. -> Lable(-) ->InputFeld(12)   er soll dann das - vor die 12 schreiben beim abschicken des Formulares.


Form id= Transaction/book/checkForm
InputFeld class= amount
label class= add_on_amount

ich hoffe ich habe nichts vergessen, danke schonmal im voraus


----------



## tombe (13. Juni 2013)

Kannst du uns mal deinen Code zeigen damit wir wissen wie das genau aussieht!?

Aber wenn der Wechsel plus/minus über eine Checkbox gesteuert wird, dann kannst du diese doch diese auswerten um auf der nächsten Seite das entsprechende Zeichen zu setzen.


----------



## Timo1 (13. Juni 2013)

book_check.ctp


```
<?php if(isset($books[$i]['amount'])):?>
								<?php echo AppController::setColorOfAmount($books[$i]['amount']);?>
							<?php echo $this->Form->input($i.'.amount', array('type' => 'hidden', 'label' => 'Betrag in EUR: ', 'style' => 'width: 100px;'));?> 
							<?php endif;?>
```


book.ctp


```
<div class="add_on_amount">-</div><?php echo $this -> Form -> input($i .'.amount', array('label' => '','value' => '', 'class' =>'amount', 'placeholder' => 'Betrag in EUR: ', 'style' => 'width: 100px;')); ?><div class="add_on_euro">€</div><br>
```



vorzeichen_amount.js


```
var BUCS = {};

BUCS.SwitchVorzeichen = function() {
	var elements = $('.add_on_amount');
	$("input[name='amount']").change(function() {
		var vorzeichen_amount = '+';
		if ($(this).is(':checked')) {
			elements.text('+');		
		} else {
			elements.text('-')
		}
	});
};

$(document).ready(BUCS.SwitchVorzeichen);
```


----------



## tombe (13. Juni 2013)

Nur nochmal zur Sicherheit.

Du gibst in das Textfeld z.B. die Zahl 12 ein und das Label zeigt als Vorzeichen Minus an. Beim Abschicken des Formulars soll dann automatisch der Wert *-12* gesendet werden?

Dann mache in das Formular ein Hidden-Feld in welches du diesen Wert direkt einträgst.


```
if ($(this).is(':checked')) {
    elements.text('+');
    hidden.text('+' + textfeld.text);
} else {
    elements.text('-');
    hidden.text('-' + textfeld.text);
}
```

Hoffe du verstehst wie es gemeint ist!?


----------



## Timo1 (13. Juni 2013)

vielen dank werde es nochmal versuchen, hatte zwar schonmal so etwas ähnliches vor gehabt aber hatte nicht so ganz funktioniert


----------



## Timo1 (13. Juni 2013)

glaube bin noch nicht ganz wach  

also momentan siehts so aus:


```
var BUCS = {};

BUCS.SwitchVorzeichen = function() {
	var elements = $('.add_on_amount');
	var amount = $('.amount');
	var hiddentext = $('.hiddenamount');
	$("input[name='amount']").change(function() {
		var vorzeichen_amount = '+';
		if ($(this).is(':checked')) {
			elements.text('+');		
			hiddentext.text('+' + amount.text);
		} else {
			elements.text('-');
			hiddentext.text('-' + amount.text);
		}
	});
};

$(document).ready(BUCS.SwitchVorzeichen);
```





```
<td><div class="add_on_amount">-</div><?php echo $this -> Form -> input($i .'.amount', array('label' => '','value' => '','class' => 'amount', 'placeholder' => 'Betrag in EUR: ', 'style' => 'width: 100px;')); ?><div class="add_on_euro">€</div><br></td>	
						<?php echo $this -> Form -> input($i .'.amount', array('label' => '','value' => '', 'class' =>'hiddenamount', 'placeholder' => 'Betrag in EUR: ', 'style' => 'width: 100px;')); ?>
```

nur er schreibt noch nix rein, ist sowieso irgendetwas kleines nur überseh ich da grad was


----------



## Timo1 (13. Juni 2013)

Also das +/- macht er aufjeden Fall schonmal rein
nur nicht im Value Bereich


----------



## tombe (13. Juni 2013)

Sorry "text" ist falsch, du musst dafür "val" nehmen.


```
var BUCS = {};
 
BUCS.SwitchVorzeichen = function() {
    var elements = $('.add_on_amount');
    var amount = $('.amount');
    var hiddentext = $('.hiddenamount');
    $("input[name='amount']").change(function() {
        var vorzeichen_amount = '+';
        if ($(this).is(':checked')) {
            elements.text('+');     
            hiddentext.val('+' + amount.val());
        } else {
            elements.text('-');
            hiddentext.val('-' + amount.val());
        }
    });
};
 
$(document).ready(BUCS.SwitchVorzeichen);
```

So sollte es klappen!


----------



## Timo1 (13. Juni 2013)

vielen vielen vielen dank, das war dann genau der gleiche fehler den ich auch gestern gemacht habe das erklärt warum das die ganze zeit nicht geklappt hat.


----------

