【发布时间】:2017-01-20 11:54:23
【问题描述】:
我有一些功能可以验证这样的输入字段:
function validateName() {
var inputName = document.getElementById('name');
var pesanError ='';
if (inputName.value ===""){
pesanError = 'Name can't be empty'
tambahError('name',pesanError)
}else if(inputName.value !="" && inputName.value.length < 3){
remove('name');
pesanError = 'Name is too short'
tambahError('name',pesanError)
}else{
remove('name')
}
}
我使用这样的添加事件:
var inputName = document.getElementById('name');
inputName.addEventListener("blur", validateName, true);
它工作正常,当它为空时显示“名称不能为空”,当有值但长度小于 3 时,它会显示“名称太短”,但问题是在它有值之后并显示“名称太短”,然后该字段再次没有值它仍然显示“名称太短”。所以我的问题是如何使我的函数在值再次变为无值时再次显示“名称不能为空”。
这里是 remove 函数和 tambahError 函数:
function remove(id) {
var element = id + "Error";
var inputName = document.getElementById(element);
if (inputName !== undefined){
inputName.remove();
}
}
function tambahError(kolom,pesan) {
if (document.getElementById(kolom+"Error")== undefined){
var inputName = document.getElementById(kolom);
var h = document.createElement("span");
h.id = kolom+"Error";
var t = document.createTextNode(pesan);
h.appendChild(t);
h.className='error';
insertAfter(h, inputName);
}
}
【问题讨论】:
-
为什么小于3的时候名字太短?我认识很多人有 2 个字母的名字
-
我们不知道您的
tambahError函数是做什么的 - 可能只是将错误消息附加到目标元素,而不是替换它们。 -
你能把
remove和tambahError函数代码贴出来!这可能会有所帮助 -
@Ayaou 完成,我已经在这里添加了。谢谢
标签: javascript if-statement dom-events