为什么textarea的.focus()和.blur()不起作用

时间:2016-01-03 11:41:56

标签: javascript jquery html

我的表单中有一个textarea元素,如下所示。

<!DOCTYPE html>
<html>
<head>

</head>
<body>
<form id="advertiseForm" name="advertiseForm"   method="post" >
<textarea rows="20" cols="70" name="textarea" id="textarea">Please enter additional information here...</textarea>

</form>
<script type="text/javascript" src="advertisementlandedvalidationatclient.js"></script>

</body>

然后我把.focus和.blur放到javascript文件中

advertisementlandedvalidationatclient.js

$("#textarea")
  .focus(function() {
        if (txt == null) return;
        if (txt.value == "Please enter additional information here...") txt.value = '';

  })
  .blur(function() {
        if (txt == null) return;
        if (txt.value == '') txt.value = "Please enter additional information here...";

});

当我从textarea点击或删除鼠标时,"Please enter additional information here..."没有切换(显示/消失)。

我尝试了另一种方法link 它有效,该方法需要函数SetMsg需要位于textarea之上。 我不喜欢这种方法,因为我想将HTML和Javascript代码分成单独的文件,因为我需要一些其他元素

<script type="text/javascript" src="advertisementlandedvalidationatclient.js"></script> below the form.

为什么它不能在第一个.focus / .blur方法中工作,哪种方法最好? 感谢

1 个答案:

答案 0 :(得分:2)

您可以使用placholder属性作为输入元素

List<GroupInfoList<object>> GridViewItemSoure = new List<GroupInfoList<object>>();

var query = from item in Collection
            orderby ((Item)item).name
            group item by ((Item)item).name into g
            select new { GroupName = g.Key, Items = g };

foreach (var g in query)
{
    GroupInfoList<object> info = new GroupInfoList<object>();
    info.Key = g.GroupName;

    foreach (var item in g.Items.GroupBy(x=>((Item)x).color))
        info.Add(item);

    GridViewItemSoure.Add(info);
}

如果你真的希望用jQuery做到这一点,你可以将代码修改为..

<textarea rows="20" cols="70" name="textarea" id="textarea" placeholder="Please enter additional information here..."></textarea>