我发现了以下问题。想象一下,我们输入了没有值的[type =“text”]元素和一些placehplder文本。当输入的类型从“文本”动态更改为“隐藏”输入时,值变为等于占位符文本。 “静态”隐藏输入不会出现此问题。
以下代码和demo演示了此问题:
<input type="text" name="oprDate" placeholder="Date" class="form-control field-oprDate-control" value="">
<button id="btn" type="button">Run</button>
<div>
Input's value is is:
<span id="res"></span>
</div>
var btn = document.getElementById("btn"),
input = document.getElementsByName("oprDate")[0],
res = document.getElementById("res");
btn.addEventListener("click", function(evt) {
input.type = "hidden";
res.innerHTML = input.value;
});
我认为即使占位符属性对隐藏输入无效,这种行为也是不正确的。你觉得怎么样?