Javascript innerHTML/jQuery .html() 每个 id 只能工作一次?
Javascript innerHTML/jQuery .html() only works once per id?
我对这个场景比较陌生,我就是不明白。
所以我正在检查 IBAN 号码是否有效。我现在开始那部分了。但现在我想显示 "IBAN not ok" 和 "IBAN ok".
之类的消息
我尝试的方法是创建一个空的 span 元素并使用 id 更改该元素的内部HTML。
HTML:
<div class="form-group">
<label for="confirm" class="cols-sm-2 control-<label">IBAN</label>
<div class="cols-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock fa-lg" aria-hidden="true"></i></span>
<input type="text" class="form-control iban" name="iban" id="iban" required/>
<span id="message"></span>
</div>
</div>
<button id="checkiban" class="btn btn-primary btn-lg btn-block login-button" onclick="alertValidIBAN(null)">Check IBAN</button>
</div>
jQuery:
function alertValidIBAN(iban) {
var ibanvalid = isValidIBANNumber(document.getElementById("iban").value);
if(ibanvalid === false) {
$("#message").html("IBAN onjuist").fadeOut(1000);
console.log("IBAN not ok");
}
if(ibanvalid === 1) {
$("#message").html("IBAN ok").fadeOut(1000);
console.log("IBAN ok");
}
}
所以现在,如果我按下按钮并且 IBAN 无效,我会收到一条消息,提示它不正常,这很好!然后如果我再次按下按钮,什么也不会发生..
如果我随后刷新页面并输入有效的 IBAN,它会显示没问题的消息,这很好!然后如果我再次按下按钮,什么也不会发生..
如果有人能帮助我,那就太好了! :)
此致
试试这个,添加一个显示方法
if(ibanvalid === false) {
$("#message").show().html("IBAN onjuist").fadeOut(1000);
console.log("IBAN not ok");
}
if(ibanvalid === 1) {
$("#message").show().html("IBAN ok").fadeOut(1000);
console.log("IBAN ok");
}
}
JQuery fadeout() makes element invisible, so the second time you are calling it it changes the message but doesn't show it as it has 0 opacity. You will need to call .show() 功能也是为了使其可见,正如@AswinRamesh 所说:
function alertValidIBAN(iban) {
var ibanvalid = isValidIBANNumber(document.getElementById("iban").value);
if(ibanvalid === false) {
$("#message").show().html("IBAN onjuist").fadeOut(1000);
console.log("IBAN not ok");
}
if(ibanvalid === 1) {
$("#message").show().html("IBAN ok").fadeOut(1000);
console.log("IBAN ok");
}
}
我对这个场景比较陌生,我就是不明白。
所以我正在检查 IBAN 号码是否有效。我现在开始那部分了。但现在我想显示 "IBAN not ok" 和 "IBAN ok".
之类的消息我尝试的方法是创建一个空的 span 元素并使用 id 更改该元素的内部HTML。
HTML:
<div class="form-group">
<label for="confirm" class="cols-sm-2 control-<label">IBAN</label>
<div class="cols-sm-10">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-lock fa-lg" aria-hidden="true"></i></span>
<input type="text" class="form-control iban" name="iban" id="iban" required/>
<span id="message"></span>
</div>
</div>
<button id="checkiban" class="btn btn-primary btn-lg btn-block login-button" onclick="alertValidIBAN(null)">Check IBAN</button>
</div>
jQuery:
function alertValidIBAN(iban) {
var ibanvalid = isValidIBANNumber(document.getElementById("iban").value);
if(ibanvalid === false) {
$("#message").html("IBAN onjuist").fadeOut(1000);
console.log("IBAN not ok");
}
if(ibanvalid === 1) {
$("#message").html("IBAN ok").fadeOut(1000);
console.log("IBAN ok");
}
}
所以现在,如果我按下按钮并且 IBAN 无效,我会收到一条消息,提示它不正常,这很好!然后如果我再次按下按钮,什么也不会发生..
如果我随后刷新页面并输入有效的 IBAN,它会显示没问题的消息,这很好!然后如果我再次按下按钮,什么也不会发生..
如果有人能帮助我,那就太好了! :)
此致
试试这个,添加一个显示方法
if(ibanvalid === false) {
$("#message").show().html("IBAN onjuist").fadeOut(1000);
console.log("IBAN not ok");
}
if(ibanvalid === 1) {
$("#message").show().html("IBAN ok").fadeOut(1000);
console.log("IBAN ok");
}
}
JQuery fadeout() makes element invisible, so the second time you are calling it it changes the message but doesn't show it as it has 0 opacity. You will need to call .show() 功能也是为了使其可见,正如@AswinRamesh 所说:
function alertValidIBAN(iban) {
var ibanvalid = isValidIBANNumber(document.getElementById("iban").value);
if(ibanvalid === false) {
$("#message").show().html("IBAN onjuist").fadeOut(1000);
console.log("IBAN not ok");
}
if(ibanvalid === 1) {
$("#message").show().html("IBAN ok").fadeOut(1000);
console.log("IBAN ok");
}
}