这个问题也可以标题为:“使用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
属性 - 因此onclick="toggleReq()"
。
既然每个人都想知道为什么这会有用,我会解释: 这个概念是在不久前推出的,垃圾邮件发送者可能会因为包含一个额外的表单字段而被挫败,用户被指示留空。 (理想情况下,这个字段会被隐藏;真正的用户不需要知道它存在。)很明显哪些评论来自spambots,因为spambot会自动填充虚拟字段。
我想要解决的方法存在一些缺点。 spambot可能会忽略非必填字段。但是,简单地制作所需的虚拟字段会阻止表单由真实用户提交。因此,捕获机器人的最佳选择是输入字段required
,但忽略该必需标记。忽略在技术上是不可能的,但关闭required
属性是。
答案 0 :(得分:1)
如果你找到队长的名字字段,那就很容易了。假设身份是“队长”:
function toggleReg(){
$("#captain").removeAttr('required');
}
或非jQuery版本:
function toggleReq() {
document.getElementById("captain").removeAttribute("required");
}
当然,如果你想要真正的“切换”,你需要首先阅读当前状态。