1

这个问题的标题也可能是:“使用 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>

这是我的表格的高度简化版本。我知道这可能看起来很奇怪,但我希望表单实际提交时“船长”字段为空并设置为required.

我在想这可能——只是可能——通过在required单击提交按钮时让 javascript 删除属性来实现——因此onclick="toggleReq()".


既然每个人都想知道为什么这会有用,我将解释一下:这个概念是前一段时间引入的,垃圾邮件发送者可以通过包含一个额外的表单字段来阻止垃圾邮件发送者,用户被指示将其留空。(理想情况下,该字段将被隐藏;真实用户不需要知道它的存在。)很明显哪些评论来自垃圾邮件机器人,因为垃圾邮件机器人会自动填充虚拟字段。

我正在寻求解决的这种方法有几个弱点。垃圾邮件机器人可能会忽略非必填字段。但是,简单地使虚拟字段成为必填项会阻止真实用户提交表单。因此,捕捉机器人的最佳选择是保留输入字段required,但忽略所需的标签。忽略在技术上是不可能的,但关闭required属性是可行的。

4

1 回答 1

1

如果你 id 船长的姓名字段,这很容易。假设 id 为“captain”:

function toggleReg(){
   $("#captain").removeAttr('required');
}

或非 jQuery 版本:

function toggleReq() {
   document.getElementById("captain").removeAttribute("required");
}

当然,如果你想要一个真正的“切换”,你需要先读取当前状态。

于 2013-02-05T21:19:59.650 回答