【问题标题】:Can't enable disabled submit with JS Ajax (submit echoed by php)无法使用 JS Ajax 启用禁用提交(由 php 回显提交)
【发布时间】:2018-10-31 08:06:33
【问题描述】:

我什么都试过了:

document.getElementById('buy').setAttribute('disabled','false');
document.getElementById('buy').setAttribute('disabled',false);
document.getElementById('buy').removeAttribute('disabled');
document.getElementById('buy').disabled=false;

输入提交之前已经被 php 回显:

if (empty($basketproductos)) {
echo "<input type='submit' name='buy' value='Buy' disabled='disabled' id='buy'/>";
            }

还尝试使用 disabled='true' 而不是 disabled='disabled'。

【问题讨论】:

  • 确保在执行任何这些语句之前将元素添加到 DOM。
  • 如何检查?
  • 你可以看到HERE的一个例子
  • 嗯,但据我所知,这是关于如何 document.ready、onload 等,但我的 js 文件是在我的 HTML 之后加载的,无论如何禁用功能来自最近单击的按钮。 ..
  • 我明白了,在这种情况下,问题出在其他地方,因为其中一些语句应该启用了输入。查看浏览器的控制台,看看是否有任何错误。

标签: javascript php ajax disabled-input


【解决方案1】:

如果你想禁用按钮,你应该为disable属性设置true

document.getElementById('buy').disabled = true;

就像@Titus 所说(在评论中),请确保在执行语句之前将元素添加到 DOM。

【讨论】:

    【解决方案2】:

    也许您的 js 在 html 之前执行,这应该可以:

    document.addEventListener('DOMContentLoaded', function(){
    
      var buyButton = document.getElementById('buy');
    buyButton.disabled = false; //or true
    
    }, false);
    

    <form action="">
    <input type='submit' name='buy' value='Buy' disabled='false' id='buy'/>
      </form>
      <script>    
      var buyButton = document.getElementById('buy');
    buyButton.disabled = false; //or true
      </script>
    

    此处的功能示例:https://jsfiddle.net/cfcdh99n/

    【讨论】:

    • 仍然无法正常工作,似乎 php 根本不只是将内容添加到 DOM。
    • @Rajo 你确定 empty($basketproductos) 是真的吗?试试 if(true) 而不是 if(empty($basketproductos))
    • 当然 :( 我想我可以让这个下沉,因为有问题但可行的解决方案。
    • @Rajo 我添加了一个 jsfiddle,但问题可能出在 php
    • 谢谢它似乎可以自己工作,但似乎 PHP 正在做一些奇怪的事情......非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多