2016-07-28 18 views
0

Ich versuche, den Wert eines ausgeblendeten Formularfelds mit dem Wert in einem Textfeld bei der Übermittlung meines Formulars festzulegen.Verstecktes Formularfeld mit Wert aus Textfeld aktualisieren

Ich habe versucht, die Antworten zu verschiedenen Fragen zu kombinieren, aber die nächste, die ich komme, ist die 'ID' meines Quellfelds - aber nicht der Wert.

Textfeld name = WPCF-verfügbar-Lager Verdecktes Feld name = WPCF-total-Lager

Das versteckte Feld muss einfach auf den gleichen Wert wie das Textfeld einreichen JQuery mit auf Formular festgelegt werden?

Ich kann nicht scheinen, eine einfache Probe in andere Fragen zu finden, fragte ... dank

+1

'$ (Versteckt) .val ($ (INPUT) .val())' .... Können Sie ausführbare Demo/Snippets oder [JSFiddle] (https://jsfiddle.net/) teilen? [_Erstellen Sie ein minimales, vollständiges und verifizierbares Beispiel_] (http://stackoverflow.com/help/mcve) – Rayon

+0

Warum sagen Sie, dass Sie auf "Senden" festlegen müssen? Vielleicht möchten Sie sagen, vor dem Senden und nach der letzten Änderung der Eingabe muss es eingestellt werden. Vielleicht wird es auf diese Weise klarer ... JS ist ereignisbasiert, alles kann etwas auslösen. Ich entspanne mich jetzt und stelle mir vor, was "kombinieren" in diesem entzückenden Kontext bedeutet. – Lemonade

Antwort

0

expeccted Ergebnis zu erzielen, verwenden Sie unter HTML:

<input type="hidden" name="wpcf-total-stock"> 
<input type="text" name="wpcf-available-stock" value="test"> 

JS:

$("input[name='wpcf-available-stock']").on('keyup',function(){ 
$("input[name='wpcf-total-stock']").val($(this).val()); 
alert($("input[name='wpcf-total-stock']").val()); 
}); 

Codepen- http://codepen.io/nagasai/pen/RRBwjA

+0

Ich bekomme eine Fehlermeldung 'Uncaught TypeError: $ ist keine Funktion', wenn Sie eine der Empfehlungen verwenden – Trist

+0

Jquery-Bibliothek in Ihrem HTML hinzufügen - https://code.jquery.com/jquery-2.2.4.min. js –

+0

Ich habe jQuery enthalten und verwende jQuery für etwas anderes auf dem gleichen Formular, das funktioniert ok. Ich habe gerade versucht, dies zu meinem Header hinzuzufügen, aber ich erhielt die gleiche Nachricht: ' ' – Trist

0

Zunächst einmal: Warum würden Sie ein verborgenes Formularfeld aus einem Textfeld ausfüllen, wenn Sie es sind sowieso schicken?

Zweitens sieht die jQuery wie folgt aus:

var fieldValue = $('#wpcf-available-stock').val(); 
$('#wpcf-total-stock').val(fieldValue); 

Sie können offensichtlich Kette, die zusammen, aber das ist ziemlich sauber.

Hier ist eine Demo: https://jsfiddle.net/u5Lj8cLz/

+0

Ich setze 2 Felder auf den gleichen Wert, wenn ein Benutzer das Formular zum Speichern der doppelten Eingabe sendet (und sie werden immer zuerst gleich 1 sein). ich diesen Fehler erhalte den Code mit zur Verfügung gestellt: Uncaught Typeerror: $ ist keine Funktion – Trist

+0

Nun, müssen Sie jQuery sind (was ich dachte, Sie würden haben, von Ihrem ursprünglichen Post). Wenn Sie sie anfangs gleich haben, können Sie immer überprüfen, ob das versteckte Feld auf dem Server leer ist - und dann den Wert aus dem Feld '' available' 'verwenden. –

+0

Ich habe jQuery enthalten und verwende jQuery für etwas anderes auf dem gleichen Formular, das funktioniert ok. Ich habe gerade versucht, dies zu meinem Header hinzuzufügen, aber ich erhielt die gleiche Nachricht: ' ' – Trist

0

reine JavaScript-Lösung.

updateHidden = function(x) { 
 
     document.querySelector("[name=bar]").value = x; 
 
    }
<input name="foo" value="" onchange="updateHidden(this.value)" type="text"> 
 
    <input name="bar" value="sometext" type="hidden">

aktualisieren

updateHidden = function() { 
 

 
document.querySelector("[name=bar]").value = document.querySelector("[name=foo]").value; 
 
} 
 

 

 
document.querySelector("[name=foo]").addEventListener("change", updateHidden); 
 

 
/* 
 
or, 
 
document.querySelector("[name=foo]").addEventListener("keyup", updateHidden); 
 
*/
 <input name="foo" type="text"> 
 
     <input name="bar" type="hidden">

+0

Die Formularfelder werden mit einem Wordpress-Shortcode generiert, so dass ich 'onchange' nicht verwenden kann. Ich muss mit der Formular-ID verweisen. – Trist

+0

Ich werde meine Antwort @Trist aktualisieren – marmeladze

Verwandte Themen