私は3つのフィールドを持つhtmlフォームを持っていますが、私はラベルのテキストを知っているので、IDのためにラベルのfor属性を使って入力タグのIDをつかむJS/jQuery関数を書いてみたいと思います。ラベルからfor属性の内容を取得するにはどうすればよいですか?
たとえば、ラベルテキスト「名前」は認識されますが、その属性のテキストは認識されません。
有望な解:関数は既知のラベルの配列をとり、それをループしてidを取得し、nameToId = {key1: 'value1'、key2: 'value2'などの連想配列を返します。 };
var arr = ['Name:', 'E-mail:', 'Message:'];
function scan(arr) {
for (var i = 0; i < arr.length; i++) {
var labelFor = $("label:contains(" + arr[i] + ")").attr('for');
console.log(labelFor);
}
// return nameToID
}
scan(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<title>Form Test</title>
<script type="text/javascript" src="form.js"></script>
</head>
<body>
<form action="/my-handling-form-page" method="post">
<div>
<label for="unknow">Name:</label>
<input type="text" id="unknow" name="user_name">
</div>
<div>
<label for="unknow2">E-mail:</label>
<input type="email" id="unknow2" name="user_mail">
</div>
<div>
<label for="unknow3">Message:</label>
<textarea id="unknow3" name="user_message"></textarea>
</div>
</form>
</body>
</html>
でそれを書くことができます。 – ryanpcmcquen