【问题标题】:PHP/JQuery - Disable button when "U" is typedPHP/JQuery - 输入“U”时禁用按钮
【发布时间】:2018-12-14 01:12:30
【问题描述】:

当弹出“U”字时,我需要禁用此按钮。我该怎么做?

附言U 被定义为 Unable

这是我的按钮

  <input type="submit" class="form-control btn-warning" name="search" value="Search Data"></input>

这是我的MODAL 编辑

<div class="modal fade" id="confirm-submit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                The User is Inactive
            </div>
            <div class="modal-body">
                Please try another active users, Thanks!
    </div>

    <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">İptal</button>
            <a href="#" id="submit" class="btn btn-success success">Tamam</a>
        </div>
     </div>
    </div>
</div>

这是我的代码和里面的jquery

  <input type="text" name="txtstatus" value="<?php echo $row['status'] ?>" class="validate form-control" id="soluong">


                    <?php 

                      if($row['status'] == 'U'){
                       <script type="text/javascript">
                          $(document).ready(function(){
                            $("soluong").attr("disabled", "disabled");
                          });
                       </script>

                      }

                     ?>

【问题讨论】:

  • php 是一种服务器端语言,在任何javascript 之前在服务器上执行。我相信您可以在不需要php 的情况下完成此操作。您可以在页面加载时检查输入,也可以在 change / input 上进行检查
  • @NewToJS 但我需要声明。如果我在if 语句中删除它并将其放在php 之外,那么它将自动禁用我不能这样做,因为如果输入“U”,那么它就会被禁用。
  • 这就是为什么我说在页面加载时检查输入并使用像change/input 这样的事件监听器将在之后处理对该输入的更改。
  • 我怎样才能用代码做到这一点?我很困惑:(对不起
  • 也许这个JsFiddle Example 可能会有所帮助?如您所见,输入包含单词“value”,如果您编辑它将再次启用该按钮,除非您随后键入“u”,然后再次禁用它。如果php 添加了一个不包含U 的值,它将被启用,正如您在Minor JsFiddle Edit 中看到的那样

标签: javascript php jquery html forms


【解决方案1】:

PHP 是一种服务器端语言,在任何javascript 之前在服务器上执行

您可以在页面加载和更改/输入事件时检查输入值。

在我的回答中,我创建了一个函数DisableBtn() 来处理验证输入和启用/禁用按钮。该函数将在 DOM 就绪时调用,并在触发 input 事件时调用。

我还使用了toLowerCase() 来确保这对小写和大写字符都有效。

indexOf('u') &gt; -1 用于检查值是否包含特定值。 错误: -1

$(document).ready(function() {
  function DisableBtn() {
    if ($("#soluong").val().toLowerCase().indexOf('u') > -1) {
      $("#MyBtn").attr("disabled", true);
    } else {
      $("#MyBtn").attr("disabled", false);
    }
  }
  DisableBtn();
  $('#soluong').on('input', DisableBtn);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="soluong" value="Value" />
<input type="submit" id="MyBtn" value="Search Data" />

如果您有任何问题,请在下方留言,我会尽快回复您。

我希望这会有所帮助。编码愉快!

【讨论】:

  • 先生,我为我的模态编辑了上面的代码,请帮助我在禁用后如何显示它谢谢
  • @obitouchiha 您想知道如何“键入“U”时禁用按钮”,但在提供解决方案后扩展问题会创建一个新问题,但是这里是可饮用的。您可以添加$("#confirm-submit").css("display", 'none');,但请记住这将在输入更改时执行。 JsFiddle Example
  • @obitouchiha 我比平时更进了一步,我不能 100% 确定这就是你要找的,但也许这就是你要的? Final JsFiddle Demo
  • 先生别担心你的第一个 JsFiddle 作品我刚刚设计了它!你真的是一个svior谢谢先生
  • 我找到了一个带有 css 的模态,所以你的第一个小提琴工作我只是忘了回复,因为我赶时间对不起
【解决方案2】:
  1. 使用indexOf 它在字符串中查找一个字符的实例。找到时返回索引,如果不返回 -1

var data = 'Unable';

if(data.indexOf('U')==-1){
alert('not found')
}else{
alert('found')

}

【讨论】:

  • 这似乎可行,但我怎样才能在我的文本框上实现它? txtstatus ?似乎它是自动没有指定我的文本框
  • 先生,它正在工作,但即使没有找到“U”,它也有一个警告说found
  • 试试demo remove U它不会说找到。你能用你试过的更新你的OP吗
猜你喜欢
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多