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");
  }
}