【问题标题】:jquery attr() not working on mobile - Android - Chromejquery attr() 在移动设备上不起作用 - Android - Chrome
【发布时间】:2013-12-31 09:53:52
【问题描述】:

如果输入类型文本为空或不为空,我正在尝试启用/禁用输入。这是我的 jQuery 代码:

$(document).on('keyup', '#searchString', function(){
    searchString = $('#searchString');
   if(searchString.val().length > 0){
        $('#cmdSearch').attr('disabled', false);
    }
    else{
        $('#cmdSearch').attr('disabled', true);
    }
});

这里是相关的 HTML 节点:

<div class="form-wrapper">
     <form method="post" class="res-form" role="form">
     <input type="text" name="searchString" id="searchString" autocomplete="off" aria-autocomplete="none" class="form-control input-lg" placeholder="busca artículos, screencasts o demos">
     <div style="height: 15px;"></div>
     <button type="submit" name="cmdSearch" disabled="true" id="cmdSearch" class="btn btn-block btn-lg btn-success">Buscar</button>
     </form>
</div>

它适用于桌面,但不适用于移动设备。任何想法为什么?

编辑

我发现了一些有趣的东西,它确实有效,问题是,一旦我从输入中清除了所有文本,假设输入有 "foo" 中的 .val(),我删除了 "foo",我仍然必须再次按下backspace 以便脚本执行操作,这发生在 Android 和 Chrome 上。这看起来很奇怪,有什么解决办法吗?

【问题讨论】:

    标签: jquery html mobile


    【解决方案1】:

    对于布尔值,您最好使用prop() 而不是attr()

    $(document).on('keyup', '#searchString', function(){
        searchString = $('#searchString');
       if(searchString.val().length > 0){
            $('#cmdSearch').prop('disabled', false);
        }
        else{
            $('#cmdSearch').prop('disabled', true);
        }
    });
    

    【讨论】:

    • 编辑了我的帖子,改成你说的,还是一样的问题
    • 不能在移动设备上使用,在桌面设备上可以,在移动设备上不行。
    • 尝试使用修剪 $.trim(searchString.val()).length > 0){
    • 也尝试使用 keypress 而不是 keyup
    • 您是否同时使用了修剪和按键?
    【解决方案2】:

    正如您提到的新更新,我认为您必须使用 $.trim() 方法从 if 条件中的该元素中删除任何空格:

    $(document).on('keyup', '#searchString', function(){
        var searchString = $.trim($(this).val()); //<------make a local var instead
        if(searchString > 0){
            $('#cmdSearch').prop('disabled', false);
        } else {
            $('#cmdSearch').prop('disabled', true);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多