【问题标题】:Placeholder not changing value in form占位符不改变表单中的值
【发布时间】:2020-05-24 03:29:52
【问题描述】:

我有一个表格。此表单具有包含占位符的输入字段。这些占位符应根据变量 (languageFirstTwo) 的值调整其值。

我很困惑,因为输入字段中的一个占位符会更改值,而另一个不会(名字会更改,电子邮件不会)。

任何帮助将不胜感激。谢谢。

var language = navigator.languages[0] || navigator.language;
languageFirstTwo = language.substr(0,2); //doesn't have var/let/const for a reason

lngs = document.getElementsByClassName("lng");


let fname = document.getElementById("fname");	
let email = document.getElementById("email");	

placeholders = {
	sl: { fname: "Janez", email: "moj@email.si" },
	en: { fname: "John", email: "my@email.us" }, 
	de: { fname: "Kommissar", email: "mein@email.deu" },
	it: { fname: "Fabio", email: "barilla@email.it"},
	hr: { fname: "Mirko", email: "moj@email.hr"},
	ru: { fname: "Mikayl", email: "moji@email.ru"}
}; 

init2(languageFirstTwo);

function init2(languageFirstTwo) {
	if (Object.keys(placeholders).includes(languageFirstTwo)){
		const values = placeholders[languageFirstTwo];
			fname.setAttribute("placeholder", values.fname); //changes
			email.setAttribute("placeholder", values.email); //does not change
	}
}
<form>
    <input type="text" pattern="[A-Za-z][^0-9]{2,25}" name="fname" id="fname" placeholder="John" autofocus="autofocus" autocorrect="off" autocapitalize="off"/>
    <input type="email" name="email" id="email" autocorrect="off" autocapitalize="off" maxlength="45" placeholder="my@email.com"/>
</form>

【问题讨论】:

  • 您的代码似乎运行良好。

标签: javascript


【解决方案1】:

您提供的 sn-p 在测试时工作正常。请参阅下面的 JS 小提琴演示 - JS Fiddle here

请您仔细检查以下内容 -

  • 除了您的表单之外,没有其他带有id ="email" 的标签。
  • languageFirstTwo 值与 placeholders 中的键匹配

【讨论】:

  • 你好。感谢您的努力,但问题已经找到。等待结束问题所需的时间。
猜你喜欢
  • 2021-03-01
  • 2018-11-30
  • 2019-03-05
  • 1970-01-01
  • 2019-02-25
  • 1970-01-01
  • 1970-01-01
  • 2019-01-01
  • 2021-05-08
相关资源
最近更新 更多