1. ホーム
  2. jquery

[解決済み] jQuery .val()が入力フィールドで機能しない

2022-02-18 03:57:58

質問

入力フィールドの値を取得しようとしており、それを行うためにフォームクラスで以下のメソッドを持っています。

getData: function() {
    var fields = ['name', 'email', 'message'];
    $.each(fields, function(index, el) {
        form.data[el] = $('#'+el).val();
        console.log(form.data[el]);
    });
},

(セレクトフィールドは気にしないでください。これはカスタムメイドのセレクトボックスなので、別の方法で処理しなければなりません) フォームの変更イベントでキャプチャを実行します。 入力フィールドはすべて適切なIDを持ち、以下のような感じです。

<input type="text" id="name">
<input type="email" id="email">
<textarea name="message" id="message"></textarea>

現在、フィールドに何かを入力すると、textareaからしか値が得られず、他の入力では未定義が返されるようになっています。

また、このフォームはAjaxで読み込まれていますが、フィールドの変更イベントを正常に捕捉しているので、これが問題であるとは思えません。

解決方法は?

わかりました。

入力フィールドにname属性がなく、何らかの理由で.val()が動作するためにそれが必要だったのです。