2016-07-28 9 views
0

フォームを送信するときに、テキストフィールドに入力された値で隠しフォームフィールドの値を設定しようとしています。テキストフィールドの値で隠しフォームフィールドを更新する

私は様々な質問への回答を組み合わせることを試みましたが、私のソースフィールドの「ID」を取得しています。

テキストフィールド名= wpcf-利用可能在庫 隠しフィールド名= wpcf-全株式

隠しフィールドは、単純にjqueryのを使用して提出し、フォーム上のテキストフィールドと同じ値に設定する必要がありますか?

私はすべてのおかげ

+1

'$(HIDDEN).val($(INPUT).val())' ....実行可能なデモ/スニペットや[JSFiddle](https://jsfiddle.net/)を共有できますか? [最小限で完全で検証可能なexample_を作成してください] – Rayon

+0

なぜあなたは送信時に設定する必要がありますか?提出する前と最後の入力変更後に、設定する必要があるかもしれません。たぶんそれはこのように明確になります... JSはイベントベースであり、起こっているすべてが何かを引き起こすことができます。私は今、リラックスして、この「楽しい」文脈で「結合する」という意味を想像してください。 – Lemonade

答えて

0

HTMLの下に使用し、expeccted結果を達成するために:

<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

推奨事項のいずれかを使用しているときに' Uncaught TypeError:$は関数ではありません 'というエラーが表示されます – Trist

+0

あなたのHTMLにJqueryライブラリを追加します - https://code.jquery.com/jquery-2.2.4.min。 js –

+0

私はjQueryが含まれており、同じフォーム上で何か違うものを使っています。私はちょうど私のヘッダーにこれを追加しようとしましたが、私は同じメッセージを受け取りました: '<?php wp_enqueue_script(" jquery "); ?> ' – Trist

0

まず...尋ねた他の質問に簡単なサンプルを見つけることができないよう:あなたはとにかくそれを送信しようとしているのに、なぜあなたは、テキストフィールドから非表示のフォームフィールドを埋めるでしょうか?

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

一緒にすることができます明らかにチェーンでなく、これはかなりきれいです:

第二に、jQueryのは次のようになります。 https://jsfiddle.net/u5Lj8cLz/

+0

私は2つのフィールドを同じ値に設定しています。ユーザーがフォームを提出して二重入力を保存すると、最初は常に1になります。 提供されたコードを使用してこのエラーが表示されます: 未知の型エラー:$は関数ではありません – Trist

+0

まあ、あなたは元の投稿の中にあると思っていたjQueryを含める必要があります。 最初はお互いが等しくなっていれば、サーバー上で隠しフィールドが空であるかどうかを常に確認してから、 '' available''フィールドの値を使用することができます。 –

+0

私はjQueryが含まれており、同じフォーム上で別のもののためにjQueryを使用しています。私はちょうど私のヘッダーにこれを追加しようとしましたが、私は同じメッセージを受け取りました: '<?php wp_enqueue_script(" jquery "); ?> ' – Trist

0

ピュアJavaScriptのソリューションを

はここでデモです。

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">

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

($( "入力[名前= 'wpcf-total-stock]')」); }); });フォームフィールドはWordpressショートコードを使って生成されているので、私は 'onchange'を使うことはできません。私はフォームIDを使用して参照する必要があります。 – Trist

+0

私の回答を更新します@Trist – marmeladze

関連する問題