当前位置: 首页 > 知识库问答 >
问题:

如何使功能只工作一次即使按钮点击两次?

漆雕修能
2023-03-14

好的,伙计们。我正在尝试创建一个小费计算器,我遇到了一些问题。问题是当用户输入一个值时,程序会询问(禁用enter按钮)用户是否希望包含提示,因此用户选择是或否。如果选择了其中任何一个,前面的问题就消失了,文字出现“小费包括在内”或“小费不包括在内”。现在,如果用户想要编辑上面的值,按钮将再次被启用,但是如果它点击了一个,它将再次询问用户是否想要包含提示。所以我的问题是,我怎样才能使它使它,无论那个按钮被点击多少次,那个函数(提问提示)只工作一次?

这里有一些代码,HTML

<h3>What is the bill?</h3>
<input type="number" id="bill" autocomplete="off">
<button id="enterTheBill">Enter</button>
<div id="askTip">
    <h3> Would you like to include the tip?</h3>
    <button id="yesTip">Yes</button>
    <button id="noTip">No</button>
</div>
<h3 id="includedTip">*Tip is included*</h3>
<h3 id="excludedTip">*Tip is NOT included*</h3>

JavaScript:

document.getElementById('enterTheBill').onclick = askForTip
function askForTip() {
    document.getElementById('askTip').style.display = 'block'
    document.getElementById('enterTheBill').disabled = true
}

document.querySelector('#bill').onchange = enableButton
function enableButton() {
    document.getElementById('enterTheBill').disabled = false
}

共有1个答案

鄢承运
2023-03-14

您可以在askForTip函数之上定义一个全局变量(标志),并可以设置在第一次执行askForTip时切换该标志,然后在执行askForTip时,您可以根据该标志检查是停止还是执行代码。

 类似资料:
  • 我的问题是,我的活动中的按钮需要单击两次,以使代码执行用onClick方法编写的代码。当我共享我的活动代码和布局文件代码时。请引导我解决这个问题。 活动(片段) 布局文件 而此片段正在另一个主要活动中初始化。

  • 问题内容: 因此,我在应用程序中有一个按钮和一个edittext。当我单击按钮并在edittext中写一些东西时,textview改变了。除了一件事以外,一切都应按其应有的方式进行。我必须单击两次按钮才能使其正常工作(仅在我第一次打开活动时)。打开活动后的第一次,我按下按钮,但没有任何反应,此后它应能正常工作。 我已经对此进行了研究,据我所知,引起麻烦的是专注,但我尝试了几件事却没有任何效果。 按

  • commandButton只在第二次单击时起作用 p:CommandButton与p:FileDownLoad和no ajax仅在第二次单击时起作用 列表来自 如果我尝试使用h:commandButton或使用p:commandButton将ajax设置为false(不使用js脚本),表单只需刷新,更新的值不会合并到数据库中。如果我单独使用p:commandButton,我就能够使操作正常工作,但

  • 我是使用Appium进行C#测试的新手。我能够设置一切并运行测试。我使用UiAutomatorViewer访问了一些按钮,现在我需要单击一个按钮,但我只是得到了cont-desc。哪一个FindElement(ByAndroiduiAutomator.“”)是否链接到Cont-Desc?我什么都试过了,但总是出错。我已经尝试使用TouchAction或Mouse.Click()单击此按钮;但没有任

  • 下面是我的代码,它设置了一个通知,即用户是通过zoom服务被bieng调用的。但是,如果用户不点击通知,而是直接点击应用程序图标,则无法正确捕获额外内容。我对如何从简历中的这个悬而未决的意图中提取额外的内容有点迷茫。 notificationcompat.builder mBuilder=new notificationcompat.builder(this);//构建新的通知mbuilder.s

  • 背景:试图在一个页面站点上为移动设备构建一个全屏菜单。 问题:需要单击#handle div两次才能执行操作。我尝试过以不同的方式使用follows,但我似乎在某些方面实现错误:live/die、bind/unbind、on/off、delegate/Undelegate。 我不明白我该如何解决我的问题。很抱歉在一些Divs上出现了错误的ID名。 HTML Jquery点击li时,用户将向下滚动页