来自javascript的HTML5验证
当我从javascript创建HTML并添加事件programmaticaly时,我看不到验证弹出窗口。这里是指向我的JSFIDLE的链接 以下是我的javascript:来自javascript的HTML5验证,javascript,html,validation,Javascript,Html,Validation,当我从javascript创建HTML并添加事件programmaticaly时,我看不到验证弹出窗口。这里是指向我的JSFIDLE的链接 以下是我的javascript: var newInput = document.createElement ("input"); document.body.appendChild (newInput); newInput.type = "text"; //newInput.required = true; newInput.Id = "inputId"
var newInput = document.createElement ("input");
document.body.appendChild (newInput);
newInput.type = "text";
//newInput.required = true;
newInput.Id = "inputId";
var newButton = document.createElement ("input");
document.body.appendChild (newButton);
newButton.type = "button";
newInput.addEventListener ("input", checkValid, false);
function checkValid(newInput)
{
if (newInput.value == "")
{
newInput.setCustomValidity("Write a text");
}
else
{
newInput.setCustomValidity('');
}
}
newButton.onclick = function ()
{
var newInputValue = newInput.value;
var newInputAdd = document.createElement("p");
newInputAdd.innerHTML = newInputValue;
checkValid (newInputValue);
document.body.insertBefore (newInputAdd, document.body.childNodes[0]);
newInput.value = '';
}
我做错了什么?您调用的是
checkValid
值,而不是对可以应用.setCustomValidity
的控件的引用。您需要检查有效(新输入)
此外,我不会以
a(b)
的方式留下空格,而是将其写成a(b)
我试图让工具提示触发一段时间,我甚至能够将验证消息读出到
中。然而,在做了更多的研究之后,您似乎需要触发一个提交事件,您没有这样做,但可以通过
来完成
相关问题可在此处找到:
什么是客户有效性?它不是在任何地方定义的,而是在checkValid()函数中调用的。我也不知道它是什么,但它是一个内置函数: