【问题标题】:disable submit input in html [closed]禁用在html中提交输入[关闭]
【发布时间】:2020-06-05 06:19:18
【问题描述】:

当我尝试此代码时,即使输入中有值,按钮输入也会保持禁用状态,为什么?

<form action ="/buy" method = "POST">
    <input id="symbol" type='text' name= 'symbol'/>
    <input id="shares" type= 'text' name = 'shares'/>
    <input id="submit" type= 'submit' disabled/>
</form>
<script>
    document.querySelector('#shares').onkeyup = function(){
        if (document.querySelector('#shares').value === '') {
            document.querSelector('#submit').disabled = true;
        } else {
           document.querSelector('#submit').disabled = false;  
        }
    }
</script>

【问题讨论】:

  • 错字:querSelector > querySelector
  • 使用此代码,您可以在技术上按住Backspace 键,清空input,然后仍然提交一个空表单。当然,这不是合法用户会做的事情,但这是可能的。
  • 同意@Daan - 你真的应该测试该字段的 onchange 并检查它是否仍有值。下面的答案是你问的。
  • 我刚开始使用 HTML,synatx 对我来说是新的,所以问题出在 synatx 上,谢谢!!!
  • 请撤消您对问题所做的编辑,它会误导任何来这里寻找答案的人,因为现在答案中的代码与问题相同!

标签: javascript html disabled-input


【解决方案1】:

else中除了这条语句外,一切都是正确的,你有语法错误

<form action ="/buy" method = "POST">
    <input id="symbol" type='text' name= 'symbol'/>
    <input id="shares" type= 'text' name = 'shares'/>
    <input id="submit" type= 'submit' disabled/>
</form>
<script>
    document.querySelector('#shares').onkeyup = function(){
        if (document.querySelector('#shares').value === '') {
            document.querySelector('#submit').disabled = true;
        } else {
           document.querySelector('#submit').disabled = false;  
        }
    }
</script>

工作小提琴:https://jsfiddle.net/akcvtf2r/

【讨论】:

  • 错字:document.querSelector('#submit').disabled = true; “querSelector”中缺少“y”!
  • 好地方!更新答案
猜你喜欢
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
  • 2012-02-25
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 2012-06-12
  • 2013-05-19
相关资源
最近更新 更多