除了最后一个之外,不能让FOCUS函数工作
Can't get the FOCUS function to work except the last one
<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>
您可以使用不同的变量为每个输入设置默认值,以避免覆盖该值。例如:
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)
您使用的是default_val
。而不是使用它,使用有意义的变量名,如deafult_name
, default_email
, default_url
等。另外,最好的做法是将这些静态变量放在代码的顶部
注意:您应该考虑使用placeholder
属性。
你在回调函数中使用default_val
变量,它被传递给.focus()
方法。当调用回调函数时,该变量的值不是调用.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");
});
注意:
-
jQuery
对象作为参数传递给回调函数,该回调函数传递给jQuery()
函数。上面的代码使用了这个事实,所以jQuery
对象可以安全地使用$
来引用。 - 在传递给focus方法的回调函数中,
this
指向.focus()
被调用的元素。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- JQuery合并了keyup和focusout两个函数
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 我可以在json对象中添加一个函数吗
- 函数 Window.focus 在 IE 中不起作用(8, 9, 10, 11)
- Angularjs twitter bootstrap.错误:element.focus() 不是一个函数
- 在 Safari/Chrome 中,如何在 ready() 和 focus() 上触发函数 A,在 blur() 上触发
- 如何从ember 2中的focus-out函数内部的另一个输入访问值
- jquery.focus()函数在windowschrome中不起作用
- 我创建了一个jquery函数,但focus没有;在引导输入中无法正常工作
- 除了最后一个之外,不能让FOCUS函数工作
- .focus()在Javascript函数中不起作用
- JavaScript中的Focus函数