输入值是否包含以下任何内容

时间:2016-12-18 20:40:26

标签: jquery html

如果输入值包含以下任何字母(并且仅匹配字母),我试图隐藏文本。目前它由任何字母触发,而不仅仅是“英格兰”字样中的字母。而且我不明白为什么。非常感谢任何帮助。



SELECT table1.name, table2.unique_identifier 
FROM table1
LEFT JOIN table2 
ON table1.id = table2.table1_id

var input = document.getElementById("input1")

$("#input1").keypress(function(event) {
  if (event.which == 13) {
    event.preventDefault();
    $("input").submit();
  }
});

input.addEventListener("keyup", function() {
  if ($("input[value*='england']")) {
    $('#etext').hide();
  }
});




1 个答案:

答案 0 :(得分:6)

这不是正确的检查:

if ($("input[value*='england']")) {

您需要通过以下方式进行更改:

if ($("input").val().toLowerCase().indexOf("england") === 0) {

以上代码:

  • 获取<input>
  • 的当前值
  • 转换为小写。
  • 检查england的索引是否为起始索引。

同样,你不需要混淆纯JavaScript和jQuery。使用相同的代码,并将所有内容都包含在document&#39; ready事件中。

&#13;
&#13;
$(function() {
  var input = document.getElementById("input1");

  $("#input1").keypress(function(event) {
    if (event.which == 13) {
      event.preventDefault();
      $("input").submit();
    }
  });

  $("#input1").on("keyup", function () {
    if ($(this).val().toLowerCase().indexOf("england") === 0) {
      $('#etext').hide();
    }
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="input1" type="text" value="" placeholder="Search.. ." />
<p id="etext">England</p>
&#13;
&#13;
&#13;

注意:重要的是要了解value属性不会反映用户输入,但value属性会反映。此外,if ($(selector))将始终是真实的,因为$()返回一个对象

最后,请以分号;结束语句。好的做法。