2015-08-08 93 views
0
<script type="text/javascript"> 
 
jQuery(function() { 
 
var default_val = "Name"; 
 
jQuery("input[name='first_name']").val(default_val) 
 
.focus(function() { 
 
if (jQuery(Name).val() == default_val) { 
 
jQuery(this).val("") 
 
} 
 
}); 
 
var default_val = "Email Address"; 
 
jQuery("input[name='email']").val(default_val) 
 
.focus(function() { 
 
if (jQuery(this).val() == default_val) { 
 
jQuery(this).val("") 
 
} 
 
}); 
 
var default_val = "Practice Name"; 
 
jQuery("input[name='practice_name']").val(default_val) 
 
.focus(function() { 
 
if (jQuery(this).val() == default_val) { 
 
jQuery(this).val("") 
 
} 
 
}); 
 
var default_val = "Practice Website URL"; 
 
jQuery("input[name='practice_url']").val(default_val) 
 
.focus(function() { 
 
if (jQuery(this).val() == default_val) { 
 
jQuery(this).val("") 
 
} 
 
}); 
 
var default_val = "Telephone"; 
 
jQuery("input[name='phone_number']").val(default_val) 
 
.focus(function() { 
 
if (jQuery(this).val() == default_val) { 
 
jQuery(this).val("") 
 
} 
 
}); 
 
}); 
 

 
</script>
+0

请发表您的完整代码,最好是演示。 –

+1

你只有一个'default_val'变量。每次你将它设置为等于某个值时,你就会覆盖以前的值。 – Stryner

+0

那么我只需要像“default_val_1”一样添加一个数字? – IVLEAGUE

回答

0

您可以使用不同的变量为每个输入设定的默认值,以避免重写值。例如:

HTML:

<input name="practice_url" value="" /> 
<input name="phone_number" value="" /> 

JS:

jQuery(function() { 
var default_val_practice_url = "Practice Website URL"; 
jQuery("input[name='practice_url']").val(default_val_practice_url) 
.focus(function() { 
if (jQuery(this).val() == default_val_practice_url) { 
jQuery(this).val("") 
} 
}); 
var default_val = "Telephone"; 
jQuery("input[name='phone_number']").val(default_val) 
.focus(function() { 
if (jQuery(this).val() == default_val) { 
jQuery(this).val("") 
} 
}); 
}); 

JS提琴: http://jsfiddle.net/22mo0mL3/ 顺便说一句,你可以使用jQuery占位符库。这也很酷! (https://github.com/mathiasbynens/jquery-placeholder

+0

谢谢你的帮助,我开始明白了。 – IVLEAGUE

+0

如果你认为答案是你接受的,那么请检查它以帮助其他人很容易看到并找出答案。 – secretlm

0

您正在使用default_val的一切。而不是使用的,使用的变量名有意义像deafult_namedefault_emaildefault_url等。此外,它可能是最好的做法是把这些类的静态变量的代码的顶部

0

注意:您应该考虑使用代替placeholder attribute


您正在使用的是传递给.focus()方法的回调函数里面default_val变量。当调用回调函数时,该变量的值不是调用.focus()方法时的值。

您可以将您的重复的代码放到一个函数:

jQuery(function($) { 
    function setDefaultValue($input, defaultValue) { 
     $input.val(defaultValue).focus(function() { 
      var $input = $(this); 
      if ($input.val() == defaultValue) { 
       $input.val(""); 
      } 
     }); 
    } 

    setDefaultValue($("input[name='first_name']"), "Name"); 
    setDefaultValue($("input[name='email']"), "Email Address"); 
    setDefaultValue($("input[name='practice_name']"), "Practice Name"); 
    setDefaultValue($("input[name='practice_url']"), "Practice Website URL"); 
    setDefaultValue($("input[name='phone_number']"), "Telephone"); 
}); 

注:

  1. jQuery对象作为参数传递给回调传递给jQuery()功能函数传递。上面的代码使用这个事实,因此可以使用$安全地引用jQuery对象。
  2. 在传递给焦点方法的回调函数中,this引用调用.focus()的元素。
+0

我看到你在那里做了什么。感谢您的帮助! – IVLEAGUE