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

Posted

技术标签:

【中文标题】Javascript innerHTML/jQuery .html() 每个 id 只能工作一次?【英文标题】:Javascript innerHTML/jQuery .html() only works once per id? 【发布时间】:2018-06-26 00:10:25 【问题描述】:

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

所以我正在检查 IBAN 号码是否有效。我现在开始了那部分。但现在我想显示“IBAN not ok”和“IBAN ok”之类的消息。

我尝试这样做的方法是创建一个空的 span 元素并使用 id 更改该元素的 innerhtml

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,它会显示消息正常,这很好!然后,如果我再次按下按钮,什么都不会发生..

如果有人可以帮助我,那就太好了! :)

最好的问候

【问题讨论】:

试试这个$("#message").show().html("IBAN onjuist").fadeOut(1000) 淡出的元素将保持不可见,除非您再次显示它。另外,如果你只想设置元素的文本内容,你应该使用.text(),而不是.html() 【参考方案1】:

试试这个,添加一个显示方法

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

【讨论】:

我知道这是一个我不知道的简单解决方案。非常感谢!【参考方案2】:

JQuery fadeout() 使元素不可见,因此第二次调用它时它会更改消息但不显示它,因为它的不透明度为 0。正如@AswinRamesh 所说,您还需要调用.show() 函数才能使其可见:

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

【讨论】:

我知道这是一个我不知道的简单解决方案。非常感谢!

以上是关于Javascript innerHTML/jQuery .html() 每个 id 只能工作一次?的主要内容,如果未能解决你的问题,请参考以下文章

javascript JavaScript isset()等效: - JavaScript

JavaScript 使用JavaScript更改CSS(JavaScript)

JavaScript之基础-1 JavaScript(概述基础语法)

前端基础-JavaScript的基本概述和语法

JavaScript

JavaScript