Javascript innerHTML/jQuery .html() 每个 id 只能工作一次



我对这个场景比较陌生,我只是不明白。

所以我正在检查 IBAN 号码是否有效。我现在得到了那部分。但是现在我想显示一条消息,例如"IBAN 不行"和"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>

j查询:

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,它会显示没问题的消息,这很好!然后,如果我再次按下按钮,则没有任何反应。

如果有人能帮我解决这个问题,那就太好了! :)

此致敬意

试试这个,添加一个 show 方法

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(( 使元素不可见,因此第二次调用它时它会更改消息,但不显示它,因为它的不透明度为 0。你也需要调用 .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");
  }
}

最新更新