Javascript 当用户向文本区域输入文本时显示/隐藏div?

Javascript 当用户向文本区域输入文本时显示/隐藏div?,javascript,Javascript,我试图切换一个div,以便在用户将文本输入textarea时显示和隐藏它。 我正在使用下面的代码,它不适合我,有人能告诉我为什么吗?谢谢 html: 显然,我上面的代码在IE 9中不起作用,但我应该能够通过使用这段代码来实现我的目标,但是有人能告诉我在哪里放置我的div ID/我如何调整它来为我工作吗 var activeElement = null; var activeElementValue = null; // On focus, start watching the element

我试图切换一个div,以便在用户将文本输入textarea时显示和隐藏它。 我正在使用下面的代码,它不适合我,有人能告诉我为什么吗?谢谢

html:

显然,我上面的代码在IE 9中不起作用,但我应该能够通过使用这段代码来实现我的目标,但是有人能告诉我在哪里放置我的div ID/我如何调整它来为我工作吗

var activeElement = null;
var activeElementValue = null;

// On focus, start watching the element
document.addEventListener("focusin", function(e) {
    var target = e.srcElement;
    if (target.nodeName !== "INPUT") return;

    // Store a reference to the focused element and its current value
    activeElement = target;
    activeElementValue = target.value;

    // Listen to the propertychange event
    activeElement.attachEvent("onpropertychange", handlePropertyChange);

    // Override .value to track changes from JavaScript
    var valueProp = Object.getOwnPropertyDescriptor(
            HTMLInputElement.prototype, 'value');
    Object.defineProperty(activeElement, {
        get: function() { return valueProp.get.call(this); },
        set: function(val) {
            activeElementValue = val;
            valueProp.set.call(this, val);
        }
    });
});

// And on blur, stop watching
document.addEventListener("focusout", function(e) {
    if (!activeElement) return;

    // Stop listening to propertychange and restore the original .value prop
    activeElement.detachEvent("onpropertychange", handlePropertyChange);
    delete activeElement.value;

    activeElement = null;
    activeElementValue = null;
});

function handlePropertyChange(e) {
    if (e.propertyName === "value" &&
            activeElementValue !== activeElement.value) {
        activeElementValue = activeElement.value;
        // Fire textchange event on activeElement
    }
};

请尝试以下脚本:

$(document).ready(function() {
   $("#cname").keyup(function() {
       if ($("#cname").val().length > 8) {
             $('#cname2').toggle("slow");
        }
   });
});

请尝试以下脚本:

$(document).ready(function() {
   $("#cname").keyup(function() {
       if ($("#cname").val().length > 8) {
             $('#cname2').toggle("slow");
        }
   });
});

请尝试以下脚本:

$(document).ready(function() {
   $("#cname").keyup(function() {
       if ($("#cname").val().length > 8) {
             $('#cname2').toggle("slow");
        }
   });
});

请尝试以下脚本:

$(document).ready(function() {
   $("#cname").keyup(function() {
       if ($("#cname").val().length > 8) {
             $('#cname2').toggle("slow");
        }
   });
});
一种可能的方法():

这里我假设在
cname2
容器中有一些警告消息,如果文本输入长度小于等于8个字符,则必须显示这些警告消息。还请注意,我使用的是
oninput
处理程序,而不是
keyup
:因为它允许我处理鼠标驱动的剪切和粘贴以及直接输入。唯一的缺点是IE8不支持此事件(IE9对它的支持有很多缺陷,因为从文本输入中删除字符时不会触发处理程序)。

一种可能的方法():

这里我假设在
cname2
容器中有一些警告消息,如果文本输入长度小于等于8个字符,则必须显示这些警告消息。还请注意,我使用的是
oninput
处理程序,而不是
keyup
:因为它允许我处理鼠标驱动的剪切和粘贴以及直接输入。唯一的缺点是IE8不支持此事件(IE9对它的支持有很多缺陷,因为从文本输入中删除字符时不会触发处理程序)。

一种可能的方法():

这里我假设在
cname2
容器中有一些警告消息,如果文本输入长度小于等于8个字符,则必须显示这些警告消息。还请注意,我使用的是
oninput
处理程序,而不是
keyup
:因为它允许我处理鼠标驱动的剪切和粘贴以及直接输入。唯一的缺点是IE8不支持此事件(IE9对它的支持有很多缺陷,因为从文本输入中删除字符时不会触发处理程序)。

一种可能的方法():

这里我假设在
cname2
容器中有一些警告消息,如果文本输入长度小于等于8个字符,则必须显示这些警告消息。还请注意,我使用的是
oninput
处理程序,而不是
keyup
:因为它允许我处理鼠标驱动的剪切和粘贴以及直接输入。唯一的缺点是IE8不支持此事件(IE9对它的支持有很大的缺陷,因为当从文本输入中删除字符时不会触发处理程序)

我希望这有帮助

我希望这有帮助

我希望这有帮助


我希望这有助于使用此Javascript函数

var z = document.getElementById('cname');

z.onkeyup = function(){
    document.getElementById('cname2').innerHTML = z.value;
}
您的HTML:

<input type='text' name='cname' class='field' id='cname'>

    <div class='cname2' id='cname2'></div>


在此处签出:

使用此Javascript函数

var z = document.getElementById('cname');

z.onkeyup = function(){
    document.getElementById('cname2').innerHTML = z.value;
}
您的HTML:

<input type='text' name='cname' class='field' id='cname'>

    <div class='cname2' id='cname2'></div>


在此处签出:

使用此Javascript函数

var z = document.getElementById('cname');

z.onkeyup = function(){
    document.getElementById('cname2').innerHTML = z.value;
}
您的HTML:

<input type='text' name='cname' class='field' id='cname'>

    <div class='cname2' id='cname2'></div>


在此处签出:

使用此Javascript函数

var z = document.getElementById('cname');

z.onkeyup = function(){
    document.getElementById('cname2').innerHTML = z.value;
}
您的HTML:

<input type='text' name='cname' class='field' id='cname'>

    <div class='cname2' id='cname2'></div>



在此处签出:

工作
-->
在我预览时检查您的JSFIDLE它不会隐藏div及其始终显示工作
-->
在我预览时检查您的JSFIDLE它不会隐藏div及其始终显示工作
-->
在我预览时检查您的JSFIDLE它不会隐藏div及其始终显示在showworking
-->
上检查JSFIDLE,因为当我预览它时,它不会隐藏div,并且它的“始终显示”
切换
不用于切换css类。jqeury站点的描述:显示或隐藏匹配的元素。糟糕的是,我将它与.toggleClass()方法混合使用:-是的
toggle()
slideToggle
切换html元素,
toggleClass
切换类。
toggle
不用于切换css类。jqeury站点的描述:显示或隐藏匹配的元素。糟糕的是,我将它与.toggleClass()方法混合使用:-是的
toggle()
slideToggle
切换html元素,
toggleClass
切换类。
toggle
不用于切换css类。jqeury站点的描述:显示或隐藏匹配的元素。糟糕的是,我将它与.toggleClass()方法混合使用:-是的
toggle()
slideToggle
切换html元素,
toggleClass
切换类。
toggle
不用于切换css类。jqeury站点的描述:显示或隐藏匹配的元素。糟糕的是,我将它与.toggleClass()方法混合使用:-是的
toggle()
slideToggle
切换html元素,
toggleClass
切换类。嘿,这对我也不起作用,我觉得我应该提到我使用IE 9,我不知道这是否是我问题的原因。。。是的,这是个问题。尽管如此,IE9和IE8都有一个统一的标准。当然,您可以将其更改为处理
keyup
,但这样它就不会处理鼠标事件。请您告诉我如何调整代码以在IE中工作,然后请将
input
替换为
keyup
。检查控制台,是否有任何错误?我没有办法用IE9测试它,但是这个浏览器支持
keyup
。嘿,这对我也不起作用,我觉得我应该提到我在使用IE 9,我不知道这是否是我问题的原因。。。是的,这是个问题。尽管如此,IE9和IE8都有一个统一的标准。当然,您可以将其更改为处理
keyup
,但这样它就不会处理鼠标事件。请您告诉我如何调整代码以在IE中工作,然后请将
input
替换为
keyup
。检查控制台,是否有任何错误?我没有办法用IE9测试它,但是这个浏览器支持
keyup