【问题标题】:Disable Button isn't working properly. Text are remove but button is still enabled禁用按钮无法正常工作。文本已删除,但按钮仍处于启用状态
【发布时间】:2020-10-19 17:58:57
【问题描述】:

我有一个问题,如果我从教科书中删除数字,提交按钮仍然启用。起初,当我在文本框中输入输入时,它会启用我的按钮,但如果我删除其中一个,它仍然会启用。

这是我的按钮。我已将文本框的 id 设置为“digit”和“digit1”

if ((document.getElementById("digit").value > 0) && (document.getElementById("digit1").value > 0)) {
  rand.removeAttribute('disabled');
} else {
  rand.setAttribute('disabled', 'disabled');
}
<input id="rand" type="submit" value="Submit" disabled>

【问题讨论】:

  • 你没有定义rand
  • @Spectric rand 是我的按钮的 id
  • 您没有在两个
  • 使用document.getElementById("rand").disabled = true/false
  • @noor disabled(你忘了最后一个“d”:))

标签: javascript


【解决方案1】:

您没有正确定义变量random

function validate(){
var rand = document.getElementById("rand");
if ((document.getElementById("digit").value > 0) && (document.getElementById("digit1").value > 0)) {
  rand.removeAttribute('disabled');
} else {
  rand.setAttribute('disabled', 'disabled');
}
}
<table style="border-collapse: collapse" width="100%">  
<form action="random" method="get" onSubmit="return validate()">
        <tr>
            <td>
            Lowest number: 
            <input id="digit" type="text" name="lowestnumber" onchange="validate(event)">
            <span id="numbers"></span>
            <br/>
            </td>
        </tr>
        <tr>
            <td>
            Highest number:
            <input id="digit1" type="text" name="highestnumber" onchange="validate(event)">  
            <span id="numbers1"></span>    
            </td>
        </tr>
        <tr>
            <td>
                <input id="rand" type="submit" value="Submit" onclick="validate()" disabled><br/>
            </td>
        </tr>
        <br/>
</form>
</table>

由于 stacksn-ps.net 目前已关闭,您可以在此处查看实时小提琴: https://jsfiddle.net/41xgLjw9/

【讨论】:

  • 我刚刚意识到,如果里面没有文本,是 if else 导致按钮不被禁用,我该如何解决?
  • @NgLengPoh 在小提琴中,如果里面没有文本,则按钮被禁用。
  • 是的,我明白,但我认为问题是我有太多的 if else 语句。如果它只是按钮的 if else 语句,它将起作用
【解决方案2】:

最简单的方法:-

function success() {
     if(document.getElementById("textsend").value==="") { 
            document.getElementById('button').disabled = true; 
        } else { 
            document.getElementById('button').disabled = false;
        }
    }
<textarea class="input" id="textsend" onkeyup="success()" name="demo" placeholder="Enter your Message..."></textarea>
<button type="submit" id="button" disabled>Send</button>

参考solution

【讨论】:

  • 我的
  • 我认为如果您有多个条件尝试使用 switch case,这可能会有所帮助。我试图运行您的代码,但它给出了“未捕获的类型错误:无法读取 null 的属性‘值’”错误。检查此开关盒:w3schools.com/js/js_switch.asp
  • 我认为您的代码并不完整,因为您只有一个默认禁用的输入标签。那么在哪里输入一个数字来执行条件签入JS呢?您还必须像我在上面的代码中所做的那样采用输入类型文本
猜你喜欢
  • 2013-05-29
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多