フォームがたくさん時に入力するのがかなり手間だったので作成。
// 全てのinput, select, textarea要素を取得
var items = document.querySelectorAll('input, select, textarea');
// 全てのlabel要素のテキストを配列に格納
var labels = Array.from(document.querySelectorAll('label')).map(function(label) {
return label.textContent;
});
// input, select, textarea要素に値を設定
for (var i = 0; i < items.length; i++) {
var item = items[i];
// すでに入力されている場合は無視する
if (item.value !== '') continue;
// inputまたはtextarea要素の場合
if (item.tagName === 'INPUT' || item.tagName === 'TEXTAREA') {
// チェックボックスやラジオボタンの場合はチェックする
if (item.type === 'checkbox' || item.type === 'radio') {
item.checked = true;
}
// プレースホルダーがある場合はその値を入力する
else if (item.placeholder !== '') {
item.value = item.placeholder;
}
// input type="file"の場合はファイル選択ダイアログを開く
else if (item.type === 'file') {
item.click();
}
// 該当しない場合は準備したlabelsからインデックス指定で入力する
else {
var index = i % labels.length;
item.value = labels[index];
}
}
// select要素の場合は1つ目を選択する
else if (item.tagName === 'SELECT') {
item.selectedIndex = 0;
}
}
GPT生成用メモ
既存のサイトを自動入力指定するコンソールから実行できるjsを書いて。
jQueryを使用しないで。また途中でエラーになった時も進ようにして。
- 準備
- 全てのinputとselectとtextbox要素を取得 =items
- 全てのlabel要素のテキストを配列に格納 =labels
- 全てのinputとselectとtextbox要素に対して値を設定
- すでに入力されてる場合:放置
- inputまたはtextbox要素の場合
- チェックボックスやラジオボタンの場合:チェック
- type="file"の場合:ダイアログを開く
- プレースホルダーがある場合:その値を入力
- 該当しない場合:準備したlabelsからインデックス指定で入力
- select要素の場合
- 1つ目を選択