2

私は次のコードを持っています。

JavaScript

<script>
function postUser() {
    var user = $('span input').serialize;
    alert(user.username);
}
</script>

HTML

<span>
  User name : <input type="text" name="username"><br />
  Password: <input type="password" name="password" /><br />
  First name: <input type="text" name="firstName" /><br />
  Last name: <input type="text" name="lastName" /><br />

  <button onclick="postUser()">Submit</button>
</span>

UIにアイテムを入力すると、アラートに「未定義」と表示されますが、配列をシリアル化することでJSONオブジェクトにする必要があると思いましたか?ユーザー名が未定義である理由はありますか?

4

3 に答える 3

12

()関数を呼び出すためにを忘れました。

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

さらに、オブジェクトではなく結果.serialize()が得られます。string

おそらくあなたは代わりにこれが欲しかったでしょう:

var username = $('span input[name=username]').val();

すべての値を参照するオブジェクトが必要な場合は、それを作成する必要があります。

var vals = {};

$('span input').each(function() {
    vals[this.name] = this.value;
});

var name = vals.username;
于 2012-10-09T16:47:13.357 に答える
1

ここでシリアル化する必要はありません。

必要なのは、名前が「username」である入力の値を取得することです。

alert($('input[name="username"]').val());
于 2012-10-09T16:48:47.363 に答える
0

.serialize()は、フォーム要素のセットを送信用の文字列としてエンコードするために使用されます。フォーム値にオブジェクトとしてアクセスすることはできません。続きを読む

HTML

<span>
  User name : <input type="text" name="username"><br />
  Password: <input type="password" name="password" /><br />
  First name: <input type="text" name="firstName" /><br />
  Last name: <input type="text" name="lastName" /><br />

  <button id="btn" onclick="postUser()">Submit</button>
</span>​

Jquery

$("#btn").click(function(){
   alert($('input[name="username"]').val());
 });

ここでデモをお試しください

于 2012-10-09T16:52:28.310 に答える