Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
输入事件上的JavaScript_Javascript_Jquery_Html_Css - Fatal编程技术网

输入事件上的JavaScript

输入事件上的JavaScript,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个带有CSS动画的表单,当表单字段被选中时,标签会被设置动画,当文本被填充时,标签不会被设置动画。这适用于输入字段,但不适用于textarea。似乎找不到问题,我已经玩了一段时间了 这是我的JS代码: <script> (function() { // trim polyfill : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/S

我有一个带有CSS动画的表单,当表单字段被选中时,标签会被设置动画,当文本被填充时,标签不会被设置动画。这适用于输入字段,但不适用于textarea。似乎找不到问题,我已经玩了一段时间了

这是我的JS代码:

    <script>
    (function() {
        // trim polyfill : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
        if (!String.prototype.trim) {
            (function() {
                // Make sure we trim BOM and NBSP
                var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
                String.prototype.trim = function() {
                    return this.replace(rtrim, '');
                };
            })();
        }

        [].slice.call( document.querySelectorAll('input.input_field', 'input-textarea.input_field-textarea') ).forEach( function( inputEl ) {
            // in case the input is already filled..
            if( inputEl.value.trim() !== '' ) {
                classie.add( inputEl.parentNode, 'input--filled' );
            }

            // events:
            inputEl.addEventListener( 'focus', onInputFocus );
            inputEl.addEventListener( 'blur', onInputBlur );
        } );

        function onInputFocus( ev ) {
            classie.add( ev.target.parentNode, 'input--filled' );
        }

        function onInputBlur( ev ) {
            if( ev.target.value.trim() === '' ) {
                classie.remove( ev.target.parentNode, 'input--filled' );
            }
        }
    })();
</script>
而不是删除这两个额外的:

 document.querySelectorAll('textarea.input_field-textarea, input.input_field'))
谢谢大家的帮助

将input-textarea.input_field-textarea选择器更改为textarea.input_field-textarea。没有这样的元素:

[].slice.calldocument.querySelectorAll'input.input_field','textarea.input_field-textarea'。forEachfunctioninputEl{ // ... };
尝试将此input-textarea.input\u field-textarea更改为此textarea.input\u field-textarea是否存在实现document.QuerySelector的浏览器,该浏览器需要为String.prototype.trim添加垫片,但未实现该垫片?我想问题可能在这里:document.QuerySelector所有“input.input\u field”,“textarea.input\u field-textarea”是因为当我只留下textarea的一部分时,当我把这两个部分都放在第一个部分时,当我切换位置时,只有第一个部分起作用。所以这一直是document的问题。querySelectorAll'input.input\u field',“textarea.input\u field-textarea”应该是document.querySelectorAll'input.input\u field,textarea.input_field-textarea'。那些是unnecessary@FallenRider您的元素是否具有class=input\u field-textarea?
 document.querySelectorAll('textarea.input_field-textarea, input.input_field'))