1

これは本当に単純なことだと確信しています...

私は以下のコードを持っています...

<script>

function postUser() {
    var user = $('span').serialize();
    $.post('userManagement/setUser', user);
}

</script>


<span>
  Username : <input type="text" name = "userName"><br />
  First name: <input type="text" name="firstName" /><br />
  Last name: <input type="text" name="lastName" /><br />
  Password: <input type="text" name="password" /><br />
  <button onclick="postUser()">Submit</button>
</span>

何も投稿されません (firebug によると、POST は文字通り空です)。

このフォームを投稿するにはどうすればよいですか? jQuery を使用したいのは、単に HTML に入れるのではなく、上手に使えるようにするためです。私のコントローラーは、上記のフィールドと「アクセス」の整数を持つ単なるユーザーエンティティである JSON オブジェクトを期待しています。

コントローラーには SpringMVC を使用しています。

ありがとう、

4

3 に答える 3

4

これを試して:

var user = $('form').serialize();

それで:

<form action="#" method="post">
  Username : <input type="text" name = "userName"><br />
  First name: <input type="text" name="firstName" /><br />
  Last name: <input type="text" name="lastName" /><br />
  Password: <input type="text" name="password" /><br />
  <button type="button" onclick="postUser()">Submit</button>
</form>
于 2012-07-09T19:45:46.470 に答える
2

serialize()spanタグではなくフォーム要素をシリアル化するために使用されます。これを試してください:

一連のフォーム要素を送信用の文字列としてエンコードします。

var user = $('span input').serialize(); // or $('form')
于 2012-07-09T19:44:49.817 に答える
1

あなたが経験している問題は、serialize()関数と適切な HTML 構造についての誤解が原因です。

.serialize() メソッドは、標準の URL エンコード表記でテキスト文字列を作成します。一連のフォーム要素を表す jQuery オブジェクトで動作します。

次のことを試してください。

var user = $('span input').serialize();

これにより、スパン要素内のすべての入力要素が検索され、データがuser変数に割り当てられます。

デモ: http://jsfiddle.net/qSr7k/

于 2012-07-09T19:46:46.303 に答える