2

入力フィールドの値を取得しようとしていますが、更新時に取得されません。ajaxログインフォームを作成しようとしています。これがコードです

<form method="post" id="contactform">
    <label for="name">Username</label>
    <input type="text"  id="un" placeholder="Username"  />

    <label for="password">Password</label>
    <input type="password"  id="pw" placeholder="Password"  />

    <br/>
    <button name="submit" type="submit" class="btn" id="submit" onclick="logUserIn(); return false;">Log In</button>

    <script type="text/javascript">
    function logUserIn()
    {
        var un = $("#un").val();
        var pw = $("#pw").val();

        alert(un);
    }
    </script>

入力フィールドに何かを入力して送信ボタンをクリックしても、更新されません。

このように入力値フィールドを手動で変更する場合

<input type="text"  id="un" placeholder="Username" value="test" />

次に、「テスト」というアラートが表示されます。

4

3 に答える 3

3

jquery サイトの val() の定義には、「一致した要素のセットの最初の要素の現在の値を取得する」と記載されています。「要素」が何を指すのかわかりませんが、デバッグモードで Javascript をステップ実行すると、jquery オブジェクト ($('#field_id') によって返される) が最初の配列要素に元の値を保持していることがわかりましたが、入力の後にテキストが変更され、更新された値が 2 番目の配列要素に保持されました. $('#field_id').last().val(); など、last() を使用するとうまくいきました。

于 2016-05-30T06:06:12.540 に答える
2

JavaScript は目立たないように書くことをお勧めします。つまり、すべての JavaScript を script タグに入れ、マークアップは別のままにしておくことです。目立たない JavaScriptを参照してください- ウィキペディア

HTML:

    <form method="post" id="contactform">
      <label for="name">Username</label>
      <input type="text" id="un" placeholder="Username" />
      <label for="password">Password</label>
      <input type="password" id="pw" placeholder="Password"
      />
      <br/>
      <button id="btnLogin" name="submit" type="submit" class="btn" id="submit">Log In</button>
</form>

JavaScript:

$(function() {
  $('#btnLogin').click(logUserIn);
});

function logUserIn() {
  var un = $("#un").val();
  var pw = $("#pw").val();

  alert(un);

  return false;
}

ライブデモ

于 2013-01-06T04:07:57.473 に答える
2

入力タグに空の値属性を追加してください。これがうまくいくことを願っています。例えば:

<input type="text"  id="un" placeholder="Username" value="" />
<input type="password"  id="pw" placeholder="Password" value="" />
于 2013-01-06T04:10:17.070 に答える