4

我希望更改以下代码,以便 textarea 具有默认值,该值在聚焦时会消失。

if ($txtActive != 'N') {
    $value = (isset($_POST['mod_SEF_textarea'])) ? htmlspecialchars($_POST['mod_SEF_textarea']) : "";
    echo "<tr>";
    echo "<th align='" . $labelAlign . "'></th>";
    echo "<td><textarea class='SEFTextArea' name='mod_SEF_textarea' id='textarea' value=\'tester\' rows='$txtRows' cols='$txtCols'>" . stripslashes($value) . "" . "</textarea>";
    echo ($txtError) ? "<br /><b style='color: $errorTxtColor;'>$txtError</b>" : '';
    //  echo "wendy TESTerburger";
    echo "</td>";
    echo "</tr>\n";
4

4 回答 4

1

您需要使用该placeholder属性。请注意,它是 HTML5 规范的一部分,仅适用于某些浏览器的最新版本。如果您希望它在较旧的浏览器中工作,则需要使用 Javascript。

echo "<td><textarea class='SEFTextArea' name='mod_SEF_textarea' id='textarea' value=\'tester\' rows='$txtRows' cols='$txtCols' placeholder='Default text'>" . stripslashes($value) . "" . "</textarea>";

这是一个使用 Javascript 执行此操作的示例:

echo "<td><textarea class='SEFTextArea' name='mod_SEF_textarea' id='textarea' value=\'tester\' rows='$txtRows' cols='$txtCols' onfocus=\"if(this.value=='Default value')this.value='';\" onblur=\"if(this.value=='')this.value='Default value';\">" . stripslashes($value) . "" . "</textarea>";

很简单。

于 2011-02-21T00:43:24.303 回答
1

任何客户端交互都不会使用 PHP - 但您的客户端朋友 JavaScript。

我编写了一个 jQuery 插件,它以跨浏览器的方式执行此操作

如果仅针对符合现代标准的浏览器,请使用该placeholder属性。

于 2011-02-21T00:47:58.947 回答
1

如果我正确理解了这个问题,您将更改此行,如下所示:

$value = (isset($_POST['mod_SEF_textarea'])) ? htmlspecialchars($_POST['mod_SEF_textarea']) : "Default Text";

因此,如果未设置 mod_SEF_textarea,即没有值,则将执行 false 子句,这将是您的默认设置。

于 2011-02-21T00:38:56.640 回答
0
echo "<td><textarea class='SEFTextArea' name='mod_SEF_textarea' id='textarea' value='Comments...' rows='$txtRows' cols='$txtCols' onfocus=\"if(this.value=='Comments...')this.value='';\" onblur=\"if(this.value=='')this.value='Comments...';\">" . stripslashes($value) . "Comments..." . "</textarea>";
于 2011-02-21T05:22:46.267 回答