2009-08-29 22 views
0

問題の簡易版、私が経験しています:ここで jQueryの+隠し入力フィールド

が私のHTMLフォームである:ここで

<form enctype="multipart/form-data" method="post" action="/controller/action"> 
<input type="text" name="title" id="title" value="" class="input-text" /> 
<input type="hidden" name="hidden_field" value="" id="hidden_field" /> 
<input type="submit" name="submit_form" id="submit_form" value="Save" class="input-submit" /> 
</form> 

ではJavaScriptです:

$(document).ready(function() {  
    $('#submit_form').hover(function() { 
     $('#hidden_field').attr('value') = 'abcd'; 
    }); 
}); 

そして、ここにありますPHPバックエンドの実際の短いバージョン:

if (isset($_POST)) { 
    var_dump($_POST); 
} 

私はちょうどjQueryのコードが実行しまったことを確認するために数秒間#submit_formボタンをホバーである何、そして私がフォームを送信して:

  • $ _POST [「hidden_​​field」]は空です!

なぜですか?それは、hoverイベントでjQueryを使用して非表示フィールドに挿入するときに 'abcd'を含む必要があります。

答えて

4

値を設定するための正しい方法:

$('#hidden_field').val('abcd'); 

参考:http://docs.jquery.com/Attributes/val

+0

$( '#hidden_​​field')を使用してもまだ空です。val( 'abcd'); : –

+0

@Knop、あなたのホバーハンドラが呼び出されていますか? – strager

+0

申し訳ありませんが、それは私のタイプミスです:) –

3

声明

$('#hidden_field').attr('value') = 'abcd'; 

が正しくありません。 rvalue(jQueryオブジェクト)を別のrvalue(文字列)に代入するときにエラーが発生するはずです。 (代入演算子は、左の左辺値(例えば変数)が必要です。)

は、あなたはおそらくしたい:

$('#hidden_field').val('abcd'); 

か:

$('#hidden_field').attr('value', 'abcd'); 

(前者は、よりjQueryのっぽいし、しかし、この場合の両方がequivilentある)

1

ことがある:。

$('#hidden_field').attr('value','abcd'); 
0

これらは隠された要素なので、ページソースを表示するもの、つまりF12を押してalert()などでチェックしてください。元のHTMLページのソースには、javascriptによる変更は反映されません。

関連する問題