css 有什么问题吗?textarea显示没有什么,但价值是

v2g6jxz6  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(66)

我写的代码显示提示用户在<textarea/>在灰色;
下一个想法:
1.最初将'Please, type your inquiry there'放置为灰色;
1.如果用户点击它,颜色将变为黑色,文本将变为''
1.如果用户键入然后删除(即保留字段为空),则我们需要将'Please, type your inquiry there'以灰色重新放入。
步骤(3)在Chrome和Firefox中都不起作用。它什么也不显示。当我使用Chrome检查器时,它显示:
element.style { color:rgb(141,141,141); }
这是正确的,和"Please, type your inquiry there"在HTML中,这也是正确的。但该字段是空的。可能是什么问题?我专门使用了console.log(),他们也显示输出,应该是.
这是HTML和JS代码:

<textarea name='contact_text'  id='contact_text'  
                        onclick='text_area_text_cl();' onBlur='text_area_text_fill();'> 
                </textarea>

<script>
    var contact_text_changed = false;
    var contact_contacts_changed = false;
    
    function text_area_text()
    { 

            if (contact_text_changed == false)
            {
                $("#contact_text").css("color","#8d8d8d");
                $("#contact_text").html('Please, type your inquiry there');
            }
            else
            {
                $("#contact_text").css("color","#000000");
            }
            // Write your code here       
    };
    function text_area_text_cl()
    {
        if (contact_text_changed == false)
        {
            $("#contact_text").text('');
            $("#contact_text").css("color","#000000");
            console.log('sdfdfs111');
            contact_text_changed = true;
        }
    };
    function text_area_text_fill()
    {
        if ($("#contact_text").val() == '')
        {
            contact_text_changed = false;
            $("#contact_text").css("color","#8d8d8d");
            $("#contact_text").html('Please, type your inquiry there');
            //document.getElementById('contact_text').innerHTML = 'Please, type your inquiry there'
            console.log('sdfdfs');
        }
        else
        {
            console.log('__');
        }
    };
    // call functions to fill
    text_area_text();

</script>

字符串

dojqjjoe

dojqjjoe1#

要设置<textarea>的值,您需要使用.val()

$("#contact_text").val('');

字符串

$("#contact_text").val('Please, type your enquiry there');


等。让“占位符”代码正常工作是很棘手的。较新的浏览器允许:

<textarea placeholder='Please, type your enquiry there' id='whatever'></textarea>


他们会帮你打理一切

  • edit* -从评论中,这里有一个解释,为什么看起来.html()可以工作(好吧,它确实可以工作,但请继续阅读)。<textarea>元素的标记内容-也就是说,元素中包含的DOM结构-表示<textarea>的 * 初始 * 值。(和/或在JavaScript触及DOM的“value”属性之前),这就是显示为字段值的内容。更改DOM的这一部分,然后,更改初始值。一旦有一些用户交互,然而,初始值不再与页面视图相关,所以不显示。只显示更新后的值。

相关问题