首页 新闻 会员 周边 捐助

如何判断输入框中是否有键盘输入

0
悬赏园豆:20 [已解决问题] 解决于 2013-08-26 15:53

在输入框中原输入内容为“备注”,现在我要用js判断输入框中是否有内容输入?

<input type="textarea" value="备注" id="remark" onblur="checkInput(this)">

<jscript language="javascript">

function checkInput(this){

  ???//求大神解惑

}

</jscript>

张惠华的主页 张惠华 | 初学一级 | 园豆:177
提问于:2013-08-26 11:00
< >
分享
最佳答案
0

checkInput=function($input){
  var _this = $input,
    value = _this.val();//缓存默认值
  _this.focus(function(){
    if(_this.val() == value){//如果框中文字为默认值则清空
      _this.val('');
    }
  })

  .blur(function(){
    if(_this.val() == ''){//如果框中为空则填充默认值
      _this.val(value);
    }
  });
}

收获园豆:7
让周飞 | 菜鸟二级 |园豆:209 | 2013-08-26 12:50
其他回答(6)
0

if(this.value!='备注'){}

收获园豆:1
Qlin | 园豆:2403 (老鸟四级) | 2013-08-26 11:27

如果我输入的就是:备注,那判断可能会出问题的,这个问题不知道该怎么解决?

支持(0) 反对(0) 张惠华 | 园豆:177 (初学一级) | 2013-08-26 11:40
0

$('#remark').keypress(function (e) {
    if (e.which == 13) {
        //13 是回车事件,每一个值代表不空的键盘字符
    }
});

收获园豆:2
田林九村 | 园豆:2367 (老鸟四级) | 2013-08-26 11:46

 if (e.which == 13) {
        //13 是回车事件,每一个值代表不空的键盘字符
    }

有点看不懂按回车键判断是什么目的呢?

支持(0) 反对(0) 张惠华 | 园豆:177 (初学一级) | 2013-08-26 11:59
0

获取焦点的时候可以把默认的“备注”清空啊,然后焦点遗失判断textarea是否为空,即便是手动舒服的“备注”两个字也没关系吧。

收获园豆:2
差生 | 园豆:3 (初学一级) | 2013-08-26 11:53

可是这个焦点在再次移入之后,备注还是会被清空的

支持(0) 反对(0) 张惠华 | 园豆:177 (初学一级) | 2013-08-26 11:57

@张惠华: -.-.。这个简单的解决方案就是你把默认的字改为"请输入备注",谁在添加备注的时候会写这个?

支持(0) 反对(0) 差生 | 园豆:3 (初学一级) | 2013-08-26 12:07
支持(0) 反对(0) 差生 | 园豆:3 (初学一级) | 2013-08-26 12:14

@差生: 哈哈,是这样的,谢啦!!!

支持(0) 反对(0) 张惠华 | 园豆:177 (初学一级) | 2013-08-26 14:31
0

1、首先,这个在新版浏览器中,是一个属性placeHolder~

2、为该标签在设置一个自定义属性,标准是系统默认,还是人工输入的备注~

收获园豆:1
幻天芒 | 园豆:37207 (高人七级) | 2013-08-26 12:08

这是html5的东东吧?

支持(0) 反对(0) 差生 | 园豆:3 (初学一级) | 2013-08-26 12:11

@差生: 应该是~要兼容ie8-的话,就需要用自定义属性什么的配合控制了~

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2013-08-26 12:52
1

最好再配合一个onfocus事件~

<input type="text" value="备注" id="remark" onblur="checkInput(this)" style="color:gray;" onfocus="focusInput(this)"/>
<script type="text/javascript">
    var emptyTip = "备注";
    function checkInput(obj) {            
        var text = $.trim($(obj).val());
        if (text == "" || text == emptyTip) {
            $(obj).val(emptyTip).css({ "color": "gray" });
        }
        else {
            //输入了内容
            $(obj).val(text).css({ "color": "black" });;
        }
    }

    function focusInput(obj) {
        var text = $.trim($(obj).val());
        if (text == "" || text == emptyTip) {
            $(obj).val("").css({ "color": "black" });
        }
        else {
            //输入了内容
            $(obj).val(text).css({ "color": "black" });;
        }
    }
</script>
收获园豆:7
libaoheng | 园豆:1433 (小虾三级) | 2013-08-26 12:45
0

默认的备注写在span中,让span标签显示在文本框的位置(下一层)。

当有输入值的时间,让他隐藏或显示到看不到的地方就行了。当然清空文本框时,再让他出现在文本框位置就行了。

这种方法比较好,就不会出现输入的值和默认值相同怎么处理了。

Albert Fei | 园豆:2102 (老鸟四级) | 2013-08-26 14:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册