【发布时间】:2013-12-10 19:06:51
【问题描述】:
我正在尝试在新的移动网站上实现“占位符”属性。遇到一个问题,如果用户将该字段留空(显示占位符),则该占位符将作为字段值提交,以便 PHP 接收并放置在数据库中。相反,它应该(我假设)发送一个空值。这会导致服务器端验证出现问题 - 接收 PHP 脚本认为已提交合法值而不是空值,这会向用户抛出错误。
我希望能快速解决这个问题。
示例代码如下:
<form action="somepage.php" method="post">
<input type="text" name="yourName" placeholder="Enter your name here">
<input type="submit">
</form>
PHP 看到:
$_POST['yourName'] = 'Enter your name here';
代替:
$_POST['yourName'] = '';
后者是我希望它看到的。
任何帮助将不胜感激!!!
* 编辑 **
这是一个有问题的示例表单:
https://www.badgleymischka.com/mobileTest.php
保留所有字段(请注意在源代码中这些字段由占位符填充,而不是值)。单击“CONTINUE”按钮,您将看到带有占位符值的 _POST 变量。
【问题讨论】:
-
placeholder是 HTML5 属性。您是否设置了正确的文档类型(即<!DOCTYPE html>)? -
目前还不是一个解决方案,但将来可能会有所帮助,现在肯定会有所帮助:在某些时候将
required放入您的<input>中,例如<input type="text" name="yourName" placeholder="Enter your name here" required> -
你能提供代码来重现它吗?发布的 HTML 表单可以正常工作(即使我刚刚使用了
<html><head></head><body>YOURFORM</body></html>) -
在 this(awful) W3Schools page test 中,它可以按您的预期工作,但它似乎在 Classic ASP 中(啊!)...
-
您是否包含任何用于占位符浏览器支持的 javascript?