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());
});