0

有没有办法(没有 JS)使输入字段 POST 成为默认值,以防在执行提交时某些输入字段为空?

换句话说:我想避免在服务器端接收类似的东西

“身份证=&密码=”

<form>
    <input name="ID" value="stuff"/>
    <input name="PW" value="stuff"/>
</form>

设置该值并没有真正帮助,因为用户仍然可以自己清理输入字段。

4

3 回答 3

2

在纯 HTML 中无法做到这一点。即使你使用 JS 设置默认值,也有人可以拦截和修改 HTTP 请求。

永远不要相信输入值。你不能假设他们的价值观。

于 2013-11-09T00:11:46.763 回答
2

不,没有 JavaScript。...但是使用 JavaScript 会很容易。不是我提倡内联脚本,而是:

<input name="ID" value="stuff" onBlur="this.value=this.value==''
         ? 'default' 
         : this.value;" />

您看到的 Javascript 是一个简单的三元运算符,遵循以下模式:

myVar = condition ? valueIfTrue : valueIfFalse;

所以它正在检查输入是否为空白。如果是这样,请将其设置为默认值;如果没有,那就顺其自然吧。

于 2013-11-09T00:14:03.053 回答
1

您应该简单地在服务器端强制执行默认值。否则,用户将永远有能力绊倒你。您可以使用 javascript 来减少发生这种情况的机会,但 javascript 将始终暴露给用户。Html 没有针对此的方法,即使我错了,它确实存在,或者将来会发生 - 这样的事情也暴露给用户。

你说的是使用strtok. 我建议简单地打破标记化两次。一次用于&,然后在每个结果中再次用于=(显然,如果每对的第二个结果为空白或空,则替换默认值)。否则,自己标记它,仍然在服务器上。

于 2013-11-09T00:21:52.973 回答