jquery替代变更或密钥

时间:2015-12-30 07:51:37

标签: javascript jquery

我有一个表单,用户必须在其中初始化一堆不同的部分。

<script>
  $.function(){
    $('.initialMe').change(function(){
      var id = $(this).attr('id');
      alert(id);
    }); 
  });
</script>

<?php
  echo "<div class='signature'>Initial Here:<input type='text' class='initialMe' id='sign[service1]' name='sign[service1]' size='4'></div>";
  echo "<div class='signature'>Initial Here:<input type='text' class='initialMe' id='sign[service2]' name='sign[service2]' size='4'></div>";
?>

我想在初始化文本框时触发操作。我不想使用更改,因为他们必须点击某处才能触发事件。我不想使用keyup,因为事件将在首字母缩写后触发。我不知道用户是否会使用2个字母或3个首字母。这不是可提交的表格。可以将其视为法律文档,用户必须在该文档中初始化页面的不同部分。我有什么选择?

2 个答案:

答案 0 :(得分:3)

您可以使用keyupsetTimeout的组合。我想说的是,将其绑定在keyup中,并给用户留出一些时间让他们感觉已经完成然后检查。

&#13;
&#13;
$(function () {
  var tmr = 0;
  $("input").keyup(function () {
    clearTimeout(tmr);
    tmr = setTimeout(function () {
      alert("Checking...");
    }, 1000);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input />
&#13;
&#13;
&#13;

这样,每次都会检查,但会给出一些时间。当用户在一秒钟内再次键入时,它会清除之前的计时器,因此不会进行检查。

答案 1 :(得分:1)

为什么不在blur()上这样做?

如果用户点击或标记离开该字段,则表明他们已完成imho。

另一种选择,如果它是同一个用户初始化表单的几个部分 - 您可以等到第一个字段完成后,检查用户是否正确,然后不要与其他人做任何事情,直到那时的首字母与第一个完成的字段匹配。