jquery输入 - 如何正确处理文本更改

时间:2017-04-07 14:43:15

标签: javascript jquery html

我知道这个问题已被多次询问,但没有明确的答案。我正在尝试在用户写入输入时执行某个过程(ajax调用)。所以我尝试使用onchange事件,但它似乎不起作用。我不明白为什么。这是'我的代码:

HTML:

<input type="text" required="" class="form-control" name="email" placeholder="Adresse email" id="email">

JS

$("#email").change(function() {
  alert("here");
  /**** Process ****/
});

这是小提琴:JSFiddle

我在其他帖子中看到不应该使用更改事件,但我找不到关于如何正确使用的明确答案。

4 个答案:

答案 0 :(得分:1)

你说你希望它在用户写入输入时触发,所以这里使用的相应事件是onkeyup,这就是你的代码:

&#13;
&#13;
$("#email").on('keyup', function() {
  console.log("typing ...");

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" required="" class="form-control" name="email" placeholder="Adresse email" id="email">
&#13;
&#13;
&#13;

注意:

避免使用alert(),因为它会在您输入字符时尝试提醒消息。

答案 1 :(得分:0)

当你失去焦点时,

change会被激活。也许您打算使用input事件?

$("#email").on('input', e => console.log(e.target.value));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" required="" class="form-control" name="email" placeholder="Adresse email" id="email">

答案 2 :(得分:0)

我已经更新了小提琴。看一看 link。包含jQuery链接并使用keyup函数,以防你想输入字符。

$("#email").keyup(function() {
alert("There");
});

答案 3 :(得分:0)

用以下内容替换您的javascript:

$(document).on('change','#email',function() {
    alert("here");
});