<textarea onfocus=" javascript:clearContents(this); this.cleared=true;" rows="5" cols="40" id="comment" name="comment" <?php if($vis["username"] == $pusername) { echo "DISABLED"; } ?>>...</textarea>
<input onsubmit="if (!this.comment.cleared) clearContents(this.comment); return true;" type="submit" name="Submit" value="Stem!"/>
function clearContents(element) {
element.innerHTML = '';
}
Эта работа привычки, и я не могу выяснить почему. Что это делает: очищает содержание, если это не был onfocus/clicked на человеком
clearContents( document.getElementById('comment') )
Вы должны привязать onsubmit
к и сделать это ненавязчиво, в идеале...
<input onsubmit="if (!this.comment.cleared)
это
и есть
. Элементы ввода не имеют события submit
или свойства comment
. Возможно, вы захотите разместить это в окружающем элементе
:
<form onsubmit="if (!this.comment.cleared) ...
Хотя это можно поместить на кнопку отправки, вам придется использовать onclick = "if (! this.form.comment.cleared) ...
, чтобы перейти вверх к форме и вниз к другому входу. Как правило, не рекомендуется привязывать код отправки формы к определенной кнопке.
Как сказал Медер , делать все это во встроенных обработчиках событий немного некрасиво. (Особенно ненужный префикс javascript:
.) Предпочитаю назначать вместо этого из JS:
<form id="someform" method="post" action="somewhere"><div>
<textarea
rows="5" cols="40" name="comment"
<?php if($vis['username']==$pusername) { ?>disabled="disabled"<?php } ?>
>
...
</textarea>
<input type="submit" name="Submit" value="Stem!" />
</div></form>
<script type="text/javascript">
var f= document.getElementById('someform');
var cleared= false;
f.elements.comment.onfocus= function() {
f.comment.value= '';
cleared= true;
};
f.onsubmit= function() {
if (!cleared)
f.comment.value= '';
};
</script>
Я использовал синтаксис XHTML для атрибута disabled (поскольку вы, кажется, используете синтаксис XHTML в другом месте) и использовали значение
для очистки содержимого. Не используйте innerHTML
- он не делает то, что вы думаете, кроме случаев, когда он случайно из-за ошибок браузера. Для доступа к полям формы всегда необходимо использовать значение
.