有没有办法(没有 JS)使输入字段 POST 成为默认值,以防在执行提交时某些输入字段为空?
换句话说:我想避免在服务器端接收类似的东西
“身份证=&密码=”
<form>
<input name="ID" value="stuff"/>
<input name="PW" value="stuff"/>
</form>
设置该值并没有真正帮助,因为用户仍然可以自己清理输入字段。
在纯 HTML 中无法做到这一点。即使你使用 JS 设置默认值,也有人可以拦截和修改 HTTP 请求。
永远不要相信输入值。你不能假设他们的价值观。
不,没有 JavaScript。...但是使用 JavaScript 会很容易。不是我提倡内联脚本,而是:
<input name="ID" value="stuff" onBlur="this.value=this.value==''
? 'default'
: this.value;" />
您看到的 Javascript 是一个简单的三元运算符,遵循以下模式:
myVar = condition ? valueIfTrue : valueIfFalse;
所以它正在检查输入是否为空白。如果是这样,请将其设置为默认值;如果没有,那就顺其自然吧。
您应该简单地在服务器端强制执行默认值。否则,用户将永远有能力绊倒你。您可以使用 javascript 来减少发生这种情况的机会,但 javascript 将始终暴露给用户。Html 没有针对此的方法,即使我错了,它确实存在,或者将来会发生 - 这样的事情也暴露给用户。
你说的是使用strtok
. 我建议简单地打破标记化两次。一次用于&
,然后在每个结果中再次用于=
(显然,如果每对的第二个结果为空白或空,则替换默认值)。否则,自己标记它,仍然在服务器上。