Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当用户使用jQuery完成输入或离开文本字段时,如何从文本字段中获取值?_Javascript_Jquery_Ajax_Forms - Fatal编程技术网

Javascript 当用户使用jQuery完成输入或离开文本字段时,如何从文本字段中获取值?

Javascript 当用户使用jQuery完成输入或离开文本字段时,如何从文本字段中获取值?,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我有一种形式像 <form method="post" action="test.php"> <input type="text" name="field1" class="class1"><span class="info"> <input type="text" name="field2" class="class1"><span class="info"> <input type="text" name="field3

我有一种形式像

<form method="post" action="test.php">
 <input type="text" name="field1" class="class1"><span class="info">
 <input type="text" name="field2" class="class1"><span class="info">
 <input type="text" name="field3" class="class1"><span class="info">
</form>
我正在努力做到这一点。在用户向表单字段提供输入后,它可能会传递给ajax,相应的信息范围可能会用ajax回复更新,无论是true还是false。我该怎么做呢?

我想
.focusout()
就是你想要的

当某个元素或其中的任何元素失去焦点时,focusout事件被发送到该元素


您可以使用
.blur()
但是blur事件,它支持检测子元素上的焦点丢失

您可以像这样使用更改事件


焦点、模糊和更改都是可行的事件侦听器,用于在用户在输入之外单击时更新跨度,但我认为这不足以在用户“完成键入”时更新跨度,尤其是在使用自动完成或Ctrl+V时,这可能不构成按键或键控事件


也许可以尝试设置一些限制方法,以便jQuery每100毫秒左右检查一次表单的val(),如果与上次检查有任何不同,则进行更新。

使用
.focus()
$('input').blur(函数(){});
change
事件就是这样做的。按enter键也会触发'change',除了IENo之外,它不会。刚刚检查了firefox和chrome。enter仅在输入值发生实际更改时触发更改事件。这就是我的意思,抱歉,在IE中,更改值并按enter键后不会触发
$.ajax({
  type: 'POST',
  url: 'ajaxhandler.php',
  data: 'item='+fieldvalue,//class1 values. field1 value, field2 value etc
  cache: false,
  success: function(result) {
    if(result == "true"){
      //update span with true
    }else{
      //update span with false
    }
  }
});
$('input[type=text]').on('change', function(){
  var input=$(this);
  //do your ajax call here
  alert('this can be an ajax call');
  input.next('span.info').html(input.val());
});