Javascript 输入新值时如何更改输入值

Javascript 输入新值时如何更改输入值,javascript,Javascript,我有一个带有占位符=“yyy/MM”的输入,当用户单击输入以输入数据时,我希望年和月不显示,因此只保留“/” 我已经尝试使用我的代码,但是它不起作用,请帮助/ var birthdayId=“document.querySelector”(“生日”); 如果(birthdayId.maxlength

我有一个带有占位符=“yyy/MM”的输入,当用户单击输入以输入数据时,我希望年和月不显示,因此只保留“/”

我已经尝试使用我的代码,但是它不起作用,请帮助/

var birthdayId=“document.querySelector”(“生日”);
如果(birthdayId.maxlength<4){
birthdayId.value=“/”;
}

焦点
事件侦听器中运行代码

您应该检查值的长度,而不是永远不变的
maxlength
属性

您不应该将对
document.querySelector的调用置于引号中

不要将输入的默认值设置为
YYYY/MM
,因为这将阻止长度测试工作。占位符用于显示所需的格式,您也不需要使用值

var birthdayId=document.querySelector(“生日”);
birthdayId.addEventListener(“焦点”,函数(){
if(birthdayId.value.length<4){
birthdayId.value=“/”;
}
});

您需要在
焦点
事件侦听器中执行逻辑这称为输入掩码。有一些插件可以做到这一点。@Taplar如何使用焦点事件侦听器做到这一点?@udzzz看看为什么在引号中有
“document.querySelector(“#birth”)”
?这使它成为一个字符串文字,它不调用函数。感谢您的回答,出于某种原因,当我测试代码时,运行代码段,值是禁用的,或者我不能输入任何值,因为我用7个字符填充值,它的最大长度。您必须删除字符才能替换它们。我将其更改为只使用
/
初始化输入,就像在您的代码中一样。但是现在你看不到在
/
的两边必须有多少个数字。做一个真正的掩码需要更复杂的代码,没有插件我是不会做的。既然你说你不能使用插件,你就不明白了。