禁用按钮直到字段是完全纯JS

时间:2016-10-05 17:34:53

标签: javascript html css

尝试禁用按钮,直到填写表单字段,我似乎无法完成此操作。我创建了一个带有单个字段的小例子,但原则与更大的形式相同。

有人可以帮忙吗?

代码:



function checkForm() {
  var name = document.getElementById("name").value;
  var cansubmit = true;

  if (name.value.length == 0) {
    cansubmit = false;
  }

  if (cansubmit == false) {
    document.getElementById("submitbutton").disabled = true;
  }

};

<input type="text" id="name" onkeyup="checkForm()" />

<button type="button" id="myButton">Test me</button>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您的样本中存在一些错误:

  1. var name被分配给name元素的值字符串,然后检查该属性的value属性 - 该字符串没有value属性。
  2. 提交按钮的idmyButton,因此请使用该ID按ID获取(设置disabled属性时)。
  3. 您可以禁用提交按钮,直到输入的名称长度大于0。
  4. 最初禁用按钮听起来是个好主意,对吗?

    见下面的更正示例:

    &#13;
    &#13;
    function checkForm()
    {
        var name = document.getElementById("name").value;
        var cansubmit = (name.length > 0);
        document.getElementById("myButton").disabled = !cansubmit;
    
    };
    &#13;
    <input type="text" id="name" onkeyup="checkForm()" />
    
    <button type="button" id="myButton" disabled="disabled">Test me</button>
    &#13;
    &#13;
    &#13;

    您可能还想考虑通过除按键以外的方法处理更改 - 例如mouseup等...我尝试添加onchange="checkForm()"并且它只能用于模糊(焦点变化)......