Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

使用wojilu 无代码实现 输入框提示 及其背后的原理


有时候,我们还希望在输入框里面出现提示信息,比如这样:

一旦鼠标点击了输入框,则提示信息自动消失。

我们把这种效果叫做“输入框提示”效果,目前似乎逐渐流行起来了。使用 wojilu ajax framework,仅需要添加两个Html属性即可。

这两个属性依次是:

1、class="tipInput"
2、tip="提示内容"

 

在看我记录的代码之前,先看看Web新手,我,是怎么来实现这个功能的。

代码来自 www.magicDict.com 源代码

1  <input name="ctl00$txtSearchWord" type="text" id="ctl00_txtSearchWord" style="width: 250px; font-size: 14px;color: #666666;" onkeyup="onChange(event);" autocomplete="off" 
onblur"if(this.value=='') {this.value=InputText; return false; }" 
onfocus="if(this.value==InputText) {this.value='';return false; }" />

 

在Onblur事件的时候,如果Value是空的话,则将提示文字写在输入框中。在输入框获得焦点的时候,如果输入框里面的文字是提示文字的时候,则清空输入框文字。

当然,这个只是一个门外汉的写法,来看看专家是怎么做的:

 

我们看到,这里有一个CSS类叫做tipInput,看来这里还是靠JQuery在起作用。一个好的框架开发者,必须要熟悉各个开发环节,不论是前台还是后台。ORM,JQuery,一切都要精通。

这里我们使用Jquery选择器,将所有的tipInput选择出来。在我们做click的时候,我们将inputTip这个样式去掉。在blur的时候,根据tip属性的有无来决定是否重新加上inputTip的样式。

wojilu.ui.tip = function() {
 var tipInputs = $( '.tipInput' );
 if( tipInputs.length>0 ) {
     function chkInputTip() {
      if( (this).val() !='' &&(this).val() != (this).attr(tip))return;(this).val( (this).attr(tip));(this).addClass('inputTip');
     };
     tipInputs.each( chkInputTip );
     tipInputs.blur( chkInputTip);
     tipInputs.click( function() {
      if( (this).val()==(this).attr('tip') ) (this).val((this).removeClass('inputTip');
     });
     tipInputs.parents("form").submit(function () {//此处ltcszk贡献代码(http://www.wojilu.com/ltcszk)。
  tipInputs.click();
     });

 };
};

 

posted @   灰毛毛  阅读(2176)  评论(8编辑  收藏  举报
编辑推荐:
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
阅读排行:
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Ollama系列05:Ollama API 使用指南
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率
点击右上角即可分享
微信分享提示