14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

jQueryの入力項目の値設定、取得のまとめ

Last updated at Posted at 2019-12-28

#はじめに
jQueryは広く使っていたjavascriptライブラリです。
ドキュメントも豊富ですが、入力項目の値設定、取得方法をまとめてみます。

#1. textbox
###html

<label>ユーザー名</label>
<input type="text" name="userName" id="userName" value="山田 太郎" maxlength="32">

###idで値取得
$("#userName").val()

###nameで値取得
$("input[name='userName']").val()

###idで値設定
$("#userName").val("山田 三郎")

###nameで値設定
$("input[name='userName']").val("山田 三郎")

#2. textarea
###html

<label>プロフィール</label>
<textarea name="profile" id="profile" maxlength="200" cols="50" rows="5">私は山田 太郎です。</textarea>

###idで値取得
$("#profile").val()

###nameで値取得
$("textarea[name='profile']").val()

###idで値設定
$("#profile").val("私は山田 三郎です。")

###nameで値設定
$("textarea[name='profile']").val("私は山田 三郎です。")

#3. radiobutton

<label>性別</label>
<input type="radio" name="gender" id="genderMale" value="男性" checked><label for="genderMale">男性</label>
<input type="radio" name="gender" id="genderFemale" value="女性"><label for="genderFeMale">女性</label>

###checkedの値取得
$("input[name='gender']:checked").val()
複数項目があるから、IDで値を取得する書き方はしません。

###IDでcheckedを設定
$("#genderFemale").attr("checked", true)

###IDでcheckedを解除
$("#genderFemale").attr("checked", false)

###nameでcheckedを設定
$("input[name='gender']").val(["女性"])

注意したいのは値を「[]」で囲むことです。下記の書き方は効かないです。
$("input[name='gender']").val("男性")

#4. checkbox
###html

<label>趣味</label>
<input type="checkbox" name="hobby" id="hobby01" value="01"><label for="hobby01">読書</label>
<input type="checkbox" name="hobby" id="hobby02" value="02"><label for="hobby02">サッカー</label>

###checkedの値取得
複数項目があるから、IDで値を取得する書き方はしません。
radioボタンみたいに下記のように書くと1つ目の値だけ取得されます。
$("input[name='hobby']:checked").val()

###eachメソッドを利用して配列取得

const hobby = []
$('input[name=hobby]:checked').each(function(index, element) {
  hobby.push(element.value);
});

###mapメソッドを利用して配列取得

$('input[name=hobby]:checked').map(function(){
   return $(this).val();
}).get()

###IDでcheckedを設定
$("#hobby01").attr("checked", true)

###IDでcheckedを解除
$("#hobby01").attr("checked", false)

###nameで複数項目設定
$("input[name='hobby']").val(["01", "02"])

#5. pulldown
###html

<label>職業</label>
<select name="occupation" id="occupation">
  <option value="" selected></option>
  <option value="01">会社員</option>
  <option value="02">学生</option>
  <option value="03">公務員</option>
</select>

###idで値取得
$("#occupation").val()

###nameで値取得
$("select[name='occupation']").val()

###idで値設定
$("#occupation").val("03")

###nameで値設定
$("select[name='occupation']").val("03")

#6. multiple select
###html

<label>趣味</label>
<select name="interest" id="interest" multiple>
  <option value=""></option>
  <option value="01">読書</option>
  <option value="02">野球</option>
  <option value="03">サッカー</option>
  <option value="04">ネットサーフィン</option>
</select>

###idで値取得
$("#interest").val()

これで["02", "03"]のような配列を取得できます。

###nameで値取得
$("select[name='interest']").val()

###idで値設定
$("#interest").val(["02", "03"])

###nameで値設定
$("select[name='interest']").val(["02", "03"])

#7. readonlyなどの属性の追加、削除

属性追加

$("#userName").attr("readonly", true)

属性削除

$("#userName").attr("readonly", false)
または
$("#userName").removeAttr("readonly")

IDとnameの定義に十分注意が必要です。特にIDは重複してしまうとおかしい動作になる場合があります。

以上

14
16
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?