cordova 调用相同的函数将element.style.display更改为“block”,在两个不同的页面上显示不同的结果

mfpqipee  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(88)

我正在开发一个简单的CRUD Web应用程序,它包含3个页面,一个登陆/索引页面,1个页面查看显示保存的数据,1个页面进行更改并将这些更改保存在indexeddb中。在其中两个页面上,我调用了一个简单的javascript函数将 .style.display 从“none”更改为“block”,以便显示模态。由于某种原因,它只在一个页面上工作。在另一个页面上(下面显示的HTML代码)在导航到登录页面之前,模态仅显示一瞬间。

function modalOpen(){
let modal = document.getElementById("aModal");
modal.style.display = "block";}

包含此代码的javascript文件在两个HTML文件中链接。下面是相应的HTML代码。在第5行调用该函数。

<main>
  <form>
    ....
   <button id="bSubmitExercise" onclick="edit('all')">Änderungen speichern</button>
   <button id="bOpenDeleteModal" onclick="modalOpen()">Übung löschen</button>
   <button id="bBackToIndex" onclick="location.href='detailsExercise.html'">Zurück zur Übersicht</button>
  </form>
</main>
<article id="aModal" class="aModal">
    <section class="sModalContent">
        <h5 id="hExercisesName"></h5>
        <div class="dContModalButtons">
            <button id="bModalConfirmDelete" class="bModal" onclick="deleteExercise()">Löschen</button>
            <button id="bModalClose" class="bModal" onclick="modalClose()">Fenster schließen</button> 
        </div>
    </section>
</article>

当我打开chrome devtools并从控制台调用modalOpen()-函数时,模态得到预期的显示。无论使用chrome,edge还是作为安卓移动的的apache cordova应用程序构建时,都会出现这种行为。在两种浏览器中多次清除缓存保存的数据。为什么会出现这种情况?

idv4meu8

idv4meu81#

由于历史原因,默认情况下,<button>标记在<form>中充当 submit 按钮。

  • 如果您正在使用某种 AJAX 机制,那么可能根本不需要<form>;
  • 您可以显式地使按钮<button type=button>禁用该提交行为

相关问题