一个文本框:
<input name="text" type="text" class="search"  onFocus="Onfocus()" onBlur="Onblur()" value="请输入关键字" size="20" />两个js事件:
<script type="text/javascript">
var Search=document.getElementById("search");
function Onfocus()
{
if(Search.value=="请输入关键字")
{
  Search.value="";
}
}
function Onblur()
{
if(Search.value=="")
{
  Search.value="请输入关键字";
}
}
  </script>因为我要取文本框的值,所以我把文本框变成了服务器控件,也就是加上runat="server"
之后,js会失效。要怎么做才能js不失效而且又能在后台写代码呢?

解决方案 »

  1.   

    好像没有设置文本框的id。
    运行一下,看看运行后的html源文件里该文本框的id是否为search
      

  2.   

    var Search=document.getElementById("<%=服务端ID.ClientID
    %>");
      

  3.   

    <input name="text" type="text" class="search" onFocus="Onfocus()" onBlur="Onblur()" value="请输入关键字" size="20" />
    改成id="search"
      

  4.   

    var Search = document.getElementById("search");
    保险起见应该写在function里面,如:
            function Onfocus() {
                var Search = document.getElementById("search");
                if (Search.value == "请输入关键字") 
                {
                    Search.value = "";            }
            }
            function Onblur() {
                var Search = document.getElementById("search");
                if (Search.value == "") {
                    Search.value = "请输入关键字";
                }
            }
      

  5.   

    没有给ID 服务端必须给Id 
      

  6.   

    楼主的JS写的有问题,因为 var Search=document.getElementById("search"); 估计search是null
    这个要看js放置的位置了,应该是如下的写法:
    <script type="text/javascript">
    function Onfocus()
    {
    var Search=document.getElementById("<%=服务端ID.ClientID%>");
    if(Search.value=="请输入关键字")
    {
      Search.value="";
    }
    }
    function Onblur()
    {
    var Search=document.getElementById("<%=服务端ID.ClientID%>");
    if(Search.value=="")
    {
      Search.value="请输入关键字";
    }
    }
      </script>
      

  7.   

    <input>是html标记,
    建议LZ使用<asp:textbox>标记,
    然后一定要有id="search"。
      

  8.   

    var Search=document.getElementById("<%=服务端ID.ClientID%>");
      

  9.   

    哎,悲剧,我一个另外的下粗心害的导致大家都误了方向就是说
    <input name="text" type="text" class="search" onFocus="Onfocus()" onBlur="Onblur()" value="请输入关键字" size="20" id="search" />
    是有ID的。只是我忘了搞上去了。主要问题是如果这个文本框不是服务器控件的话onFocus,onBlur这两个事件就能有效果
    但是变成了服务器控件之后就这两个事件失效了。