gpt4 book ai didi

JavaScript: element.setAttribute(attribute,value) , element.attribute=value & element.[attribute]=value 不改变属性值

转载 作者:太空宇宙 更新时间:2023-11-03 21:07:03 32 4
gpt4 key购买 nike

我的任务是在用户点击它时从输入框中删除占位符并使标签可见。如果用户未在其中再次填写任何内容,请放回占位符并使标签不可见。

我可以隐藏它但不能重新分配它。我试过 element.setAttribute(attribute,value) , element.attribute=value & element.[attribute]=value type 但没有用。

我一直保持默认 visibility<label> "hidden"

我已经为任务创建了 hide() 和 show() 函数,它们都有 2 个参数,即。

  1. 输入框的id
  2. 标签id

代码 JavaScript:

var placehlder;


function hide(input_id,lbl){
var e1=document.getElementById(input_id);
placehlder=e1.getAttribute('placeholder');
/*document.write(placehlder);*/
e1.placeholder="";
var e2=document.getElementById(lbl);
e2.style.visibility="visible";
}
function show(input_id,lbl){
var e1=window.document.getElementById(input_id).value;
var e2=document.getElementById(lbl);
/*document.write(placehlder);*/
if (e1.length ==0)
{
e2.style.visibility="hidden";
e1.placeholder=placehlder;
/*e1.setAttribute('placeholder',placehlder);*/
/*e1['placeholder']=placehlder;*/
}
}

HTML 代码:

<form>
<label id="first" >First Name</label><br/>
<input id="box" type="text" placeholder="First Name" onclick="hide(id,'first')" onfocusout="show(id,'first')"/>

</form>

完整代码:HTML + CSS + JAVASCRIPT:

        var placehlder;
function hide(input_id,lbl){
var e1=document.getElementById(input_id);
placehlder=e1.getAttribute('placeholder');
/*document.write(placehlder);*/
e1.placeholder="";
var e2=document.getElementById(lbl);
e2.style.visibility="visible";
}
function show(input_id,lbl){
var e1=window.document.getElementById(input_id).value;
var e2=document.getElementById(lbl);
/*document.write(placehlder);*/
if (e1.length ==0)
{
e2.style.visibility="hidden";
e1.placeholder=placehlder;
/*e1.setAttribute('placeholder',placehlder);*/
/*e1['placeholder']=placehlder;*/
}
}
        #first{

visibility: hidden;
}
#box{

}
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>
Functions
</title>



</head>
<body>
<form>
<label id="first" >First Name</label><br/>
<input id="box" type="text" placeholder="First Name" onclick="hide(id,'first')" onfocusout="show(id,'first')"/>

</form>
</body>
</html>

编辑 1:在@Darlesson 的回答中,我已经使用 CSS 解决了我的问题。但如果可能的话,请告诉我的代码有什么问题。编辑 2:正如@lenilsondc 所指出的,我的代码因为 var e1 而无法运行。没有元素,只有 value attribute元素。

var e1=window.document.getElementById(input_id).value;

替换为

var e1=window.document.getElementById(input_id);

曾与 e1.placeholder=placehlder; 合作过

最佳答案

我建议改用 CSS 作为占位符部分:

:focus::placeholder{
opacity: 0;
}

:focus::placeholder {
opacity: 0;
}
<input placeholder="Visible">

关于JavaScript: element.setAttribute(attribute,value) , element.attribute=value & element.[attribute]=value 不改变属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51639263/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com