如果浏览器没有指定名称属性,它是否会保证不发送输入元素?所有浏览器都忽略无名输入字段吗?
例如,我们可以假设发布下面的表单不会发送信用卡号码吗?
<form action="/process" method="post">
<input id="credit-card-number" type="text">
<input type="submit" name="commit" value="Go">
</form>
如果浏览器没有指定名称属性,它是否会保证不发送输入元素?所有浏览器都忽略无名输入字段吗?
例如,我们可以假设发布下面的表单不会发送信用卡号码吗?
<form action="/process" method="post">
<input id="credit-card-number" type="text">
<input type="submit" name="commit" value="Go">
</form>
它是保证,如果它没有指定名称属性的浏览器不发送的输入元素?
是的(除非你用JavaScript去改变它)。
规格很清楚controls without names cannot be successful。
一个成功的控件必须在FORM元素中定义,并且必须有一个控件名称。
该标准说,发送一个输入,它应该是一个成功的控制,如果一个控件没有一个名称,它不是一个成功的控件,所以它应该被发送。请参阅http://www.w3.org/TR/html401/interact/forms.html
不可能说“所有浏览器”是否正确处理规范。但是所有重要的浏览器都可以。 – jessegavin
是什么让你问这个?提示信用卡号码*看起来有风险,那么如果你不想发送它,你为什么要这样做呢? –
@ JukkaK.Korpela通过不向您的服务器发送信用卡信息,PCI合规性标准显着下降。在这种情况下,我们通过AJAX验证其他订单信息。一旦通过验证,我们就会立即生成一张隐藏的信用卡表单,然后发送给网关提供商,从而避免了巨大的责任。 – randomguy