35

フォームタグ内に単純な入力フィールドがあります。

<body>
  <form action="#">
      <label>Input</label>
      <input type="hidden" id="foo" name="foo" />

  </form>
</body>

私はjsファイルからこの値を設定しようとしました:

$(document).ready(function(){
    $('#foo').val('foo')
})

しかし、htmlソースでは、属性はまったく設定されていません。入力タイプを「ボタン」などに設定しようとすると、機能します。hidden入力フィールドではできません。私は何が間違っているのですか?

4

11 に答える 11

26

valタグを設定した場合、非表示フィールドから値を取得できますか?

例えば

<input type="hidden" id="foo" name="foo" value="bar" />

$(document).ready(function(){
  alert($('#foo').val());
})
于 2010-01-21T13:09:51.303 に答える
25

私はそれを考え出した。値はjQueryによって設定されましたが、ソースを表示したときに新しい値が表示されませんでした。私はこれを試しました(Ferminに感謝します):

$('#foo').val('poo')
alert($('#foo').val())

変更された値が表示されました。

于 2010-01-21T13:18:04.637 に答える
22

私が見つけた最良の答えは、http://forum.jquery.com/topic/passing-value-to-hidden-form-fieldの形式でした。

$('#Data').val(data);隠しフィールドIDが「データ」である場所の代わりに

使用する$('input[name=Data]').val(data);

私にとって完璧に動作します

于 2011-10-19T13:53:00.410 に答える
4

私もこれに苦労しています。初期値を「0」に設定し、Firebugなどを使用してDOMを監視すると、DOMが更新されることがわかります。何らかの理由で、初期値がnullまたは空の文字列に設定されている場合、DOMは更新されませんが、値は実際には保存されたままです。

これをテストするには、設定後にvalにアラートを送信します(以前の投稿で提案されているように)

于 2010-10-15T11:09:28.280 に答える
2

フォームを-ingし、PHPスクリプトが-ed値POSTを取得できなかったときに、この問題が発生しました。POST私はこれを使用しました:

$('#elemId').attr("name", theValue);

それが役に立てば幸い。

于 2011-05-17T10:40:26.037 に答える
1

非表示の入力フィールドでも同じ問題が発生しました。初期値を0に設定した場合、正常に機能しますが、初期値を0にしたくない場合があります。そこで、空白であるvalue = ""を使用してテストしましたが、これも機能します。PHPから動的な値を入力するvalue="<?= $val+0; ?>"場合、0で十分な場合、またはvalue="<?= $val; ?> "空白で問題がない場合に実行できます。

于 2010-10-20T09:51:23.287 に答える
1

ファイル全体を確認する必要がありますが、jQuery.jsソースファイルが含まれていないか、IDが次の複数の要素があると思います。foo

于 2010-01-21T13:09:40.507 に答える
1

遅くなることはわかっていますが、それでも誰かに役立つ可能性があります。上記の解決策のいずれも機能しない場合は、これを実行してください...

$(document).ready(function() {
$('#foo').attr("value","foo") });
于 2015-11-19T03:39:26.987 に答える
0

上記の解決策はどれも私にはうまくいきませんでした。

私はそれを機能させるために次のことをしなければなりませんでした:

$('#foo').val(data).blur();
于 2013-07-19T04:55:36.990 に答える
0

次に、文字列を使用してvalue属性を初期化すると、次のように入力が初期化されます。

<input type="hidden" name="foo" id="foo" value="${foo}">

「foo」には、設定した新しい値も含まれます。

于 2015-02-12T09:37:05.433 に答える
0

非表示フィールドの値の設定は、このようなjQueryセレクターでは機能しないことを確認しました...

$('[name="my_field"]').val('Something');

隠しフィールドを更新しません...ちょっと衝撃的です。

<input type="hidden" name="my_field" id="my_field">

代わりにCSS隠しフィールドを使用することを余儀なくされました。

<input type="text" name="my_field" id="my_field" style="display:none">

どうやら、隠しフィールドのIDを使用することにも他の問題があるようです... jQueryの「.val()」を使用してフォームに隠しフィールドの値を設定することはできません

注:検査ではなく、必ずコンソールで値を取得してください。

$('[name="my_field"]').val();
于 2018-04-19T01:59:56.037 に答える