<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 = '';
}
这不会起作用,我无法弄清楚原因。它的作用:如果内容没有被人聚焦/点击,则清除内容
答案 0 :(得分:1)
clearContents( document.getElementById('comment') )
你应该将onsubmit
绑定到<form>
并且不引人注意地执行此操作,理想情况下......
答案 1 :(得分:1)
<input onsubmit="if (!this.comment.cleared)
this
是<input>
。输入元素没有submit
事件或comment
属性。可能你想把它放在周围的<form>
元素上:
<form onsubmit="if (!this.comment.cleared) ...
虽然可以将其放在提交按钮上,但您必须使用onclick="if (!this.form.comment.cleared) ...
,向上导航到表单并向下导航到其他输入。将表单提交代码绑定到特定按钮通常不是一个好主意。
正如meder所说,在内联事件处理程序中完成所有这些操作有点难看。 (特别是不必要的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语法(因为您似乎在其他地方使用了XHTML语法),并使用value
来清除内容。不要使用innerHTML
- 它不会按照您的想法执行,除非由于浏览器错误而巧合。应始终使用value
访问表单字段。