Как добавить «текст по умолчанию» в форме PHP - PullRequest
3 голосов
/ 21 февраля 2011

Мне бы хотелось, чтобы следующий код был изменен таким образом, чтобы текстовое поле имело значение по умолчанию, которое исчезает при фокусировке.

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 ]

1 голос
/ 21 февраля 2011

Вам необходимо использовать атрибут 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>";

Очень просто.

1 голос
/ 21 февраля 2011

Любое взаимодействие на стороне клиента не будет использовать PHP - но ваш клиент - друг. JavaScript.

Я написал плагин jQuery, который делает это кросс-браузерным способом .

Если используется только браузер, соответствующий современным стандартам, используйте атрибут placeholder.

1 голос
/ 21 февраля 2011

Если я правильно понял вопрос, вы бы изменили эту строку, например, так:

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

Так что, если бы mod_SEF_textarea не был установлен, т.е. не имел значения, было бы выполнено предложение false, которое было быпо умолчанию.

0 голосов
/ 21 февраля 2011
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>";
...