2013-03-11 136 views
1

我有一个简单的代码,我试图用我的网站清除默认值的文本框,当用户点击它时,默认值应该清除,这样用户可以输入他/她的价值。这是我的,但我不确定它是否正确,因为它不工作。我刚开始jQuery的用Jquery点击清除输入框

$(document).ready(function() 
    { 
     $('#startDateBox').click(function() 
     { 
      if(('#startDateBox')=='Beginning') 

      { 
      $('#startDateBox').val(''); 
      } 

     }) 
    });​ 
+0

你能定义什么是“不能工作”吗? – 2013-03-11 18:45:27

+0

那么,'如果((''startDateBox')=='开始')'将*永远*为假... – Chad 2013-03-11 18:46:04

+0

当我调试它,当我点击框中,它不会清除默认值,这是开始的词。我觉得我在我的代码中缺少一些东西 – 2013-03-11 18:46:51

回答

3

您错过了第一个.val()$前面的('#startDateBox')在同一行上。 您也可以使用$(this)来引用文本框,因为在该函数内,this引用文本框DOM元素本身。用jQuery函数$()包装它可以让你访问所有框架的好东西。

$(document).ready(function() 
{ 
    $('#startDateBox').click(function(){ 
     if($(this).val() == 'Beginning') 
       ^^^^^^ Here 
     { 
      $(this).val(''); 
     } 
    }) 
});​ 
+1

和缺少该行$' – 2013-03-11 18:47:27

+0

@IswantoSan正确,谢谢 – BinaryTox1n 2013-03-11 18:48:48

3

你错了。在这一部分:

if(('#startDateBox')=='Beginning') 

首先,你缺失$。 二,我想你想比较startDateBox的值,然后用val()

试试这个:

$(document).ready(function() 
    { 
     $('#startDateBox').click(function() 
     { 
      if($('#startDateBox').val()=='Beginning') 
      { 
      $('#startDateBox').val(''); 
      } 
     }) 
    });​ 
0

我建议对HTML5的浏览器使用此

<input type="text" id="Beginning" placeholder="Beginning" /> 

if($('#startDateBox').val() =='Beginning') 

这是一个需要改变

 $('#startDateBox').on("focus", function() 
     { 
      // code here 

行点击即可不处理击打选项卡,直到该文本框专注

+0

也缺少'$'。 – 2013-03-11 18:48:08

+0

固定,占位符属性处理所有为您以及在较新的浏览器 – 2013-03-11 18:49:29

0

好,if(('#startDateBox')=='Beginning')总是是假的......

我认为你的意思更多的东西一样:

if($('#startDateBox').val() == 'Beginning') 
0

我写了这个目的,一个非常小的jQuery插件最近:

https://gist.github.com/rmcvey/5136582

$('#input').placeholder("Placeholder Text"); 

if($('#input').val() === $('#input').placeholder()){ return false; }