input默认文本不更改时,清空默认文本的方法,怎样将其方法化呢?
html结构如下:<input type="text" value="输入新浪微博用户名" id="rmkey" class="vAllIcon input">
我想实现当鼠标第一次点击时,如值未发生改变的话,将默认的文本清空。如果发现改变就显示已经输入后的文本,
现在单个对网站应用是没问题,但现在很多地方需要应用,我想将其改为方法,但按照下放的方法,结果未能正常调用。那位能告知错在那里么
JS部分的代码如下:
单个应用时的代码:
var defaultText = $("#rmkey").val(); $("#rmkey").bind('focus', function(){ if ($(this).val() == defaultText) { $(this).val(''); } }); $("#rmkey").bind('blur', function(){ if ($(this).val() == '') { $(this).val(defaultText) } });
//自己写的默认文字的方法
function setDefultText(tagName){ var defaultText = tagName.val(); tagName.bind('focus', function(){ if ($(this).val() == defaultText) { $(this).val(''); } }); tagName.bind('blur', function(){ if ($(this).val() == '') { $(this).val(defaultText) } }); } $('#rmkey').setDefultText();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看你的方法tagName直接调用了val,应该是个jquery对象,所以直接这样写是可以
不过我建议你这么写,写到jquery里
然后可以像你那样直接调用。
另外如果要连缀jquery方法,还得返回this。如果选择的不是一个,而需要选择多个,一次绑定的话,可以加上this.each,遍历一遍。不过你说你是js小白,我就不写进去了,省的绕晕你。
$('#rmkey')
的返回值是jquery对象,而jquery对象是没有setDefaultText
这个方法的,当然调用不到。