2010-06-13 65 views
1
<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 /点击广告的人的内容Javascript onsubmit clearcontent not working

回答

1
clearContents(document.getElementById('comment')) 

你应该绑定onsubmit<form>并为此悄悄地,理想......

1
<input onsubmit="if (!this.comment.cleared) 

this<input>。输入元素没有submit事件或comment属性。也许你希望把这个周边<form>元素:

<form onsubmit="if (!this.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访问表单字段。