javascript - 如何修复浏览器移动 View 中未定义问题的 jQuery 'length'?

标签 javascript jquery html css

我正在创建输入表单,用户可以在其中添加一些文本。如果输入值为空,则禁用提交按钮,如果输入文本,则启用提交按钮。 我创建的代码运行良好,但是当我使用移动或触摸 View (chrome dev.tools toggle device toolbar)时不起作用。我认为问题出在触摸上,但我无法解决。

$('#imgText').on('keyup keypress', function() {
  if($(this).val().length >= 1) {
      $("#generate-img").removeClass("no-click");
    }
});
$('#imgText').on('keyup', function() {
  if($(this).val().length == 0) {
    $("#generate-img").addClass("no-click");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

enter image description here

最佳答案

您可以使用 jQuery 的 .on('input')方法来捕获对字段值所做的更改。

$(document).ready( function() {
  $('#imgText').on("input", function() {
    if($(this).val().length == 0) {
      $("#generate-img").addClass("no-click");
    } else {
      $("#generate-img").removeClass("no-click");
    }
  });
});
.no-click {
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="imgText">
<input id="generate-img" type="submit" class="no-click">

关于javascript - 如何修复浏览器移动 View 中未定义问题的 jQuery 'length'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56596917/

相关文章:

javascript - 将新属性推送到循环内的当前对象

jquery - 单击时覆盖不关闭弹出窗口

Javascript 空闲访客检查

jquery - 在 iPhone 上验证 PayPal 表单

javascript - 如何使用 jquery 刷新 DIV 的内容

javascript - 假设容器高度固定,如何通过内容确定高度覆盖

javascript - 如何从jquery中的同一个类中获取值?

javascript - 一页结帐滚动到下一页的屏幕底部

html - 为什么不垂直对齐 : middle work with input elements in a table-cell?

JavaScript;如何声明全局变量?