この質問は、「JavaScript を使用してフィールドを必須に設定しますか?」というタイトルでもかまいません。
<form class="theform" action="#" method="post" name="theform">
<label for="tname">Team Name:</label>
<input type="text" placeholder="Bears" required /><br>
<label for="captain">Captain:</label>
<input type="text" placeholder="Captain's Name" required /><br>
<button type="submit" value="Submit" onclick="toggleReq()" >Submit</button>
</form>
これは私のフォームの非常に単純化されたバージョンです。これは奇妙に思えるかもしれませんが、「Captain」フィールドを空にして として設定してフォームを実際に送信したいと考えていrequired
ます。
required
送信ボタンがクリックされたときにjavascriptに属性を削除させることで、これが可能になるかもしれないと考えていましたonclick="toggleReq()"
。
誰もがなぜこれが有用なのかを知りたがっているので、説明します: ユーザーが空のままにしておくように指示された追加のフォーム フィールドを含めることでスパマーをくじくことができるという概念が少し前に導入されました。(理想的には、このフィールドは非表示にする必要があります。実際のユーザーはその存在を知る必要はありません。) スパムボットが自動的にダミー フィールドに入力するため、どのコメントがスパムボットから来たかが明らかになります。
私が対処しようとしているこのアプローチには、いくつかの弱点があります。スパムボットは、必須ではないフィールドを無視する可能性があります。ただし、ダミーフィールドを必須にするだけでは、実際のユーザーがフォームを送信できなくなります。したがって、ボットを捕まえる最善の方法は、入力フィールドを用意しrequired
、必須のタグを無視することです。技術的に無視することはできませんが、required
属性をオフにすることは可能です。