ajax を実行して値を取得したいのですが、値が true の場合は、onsubmit=xxx を使用して以下のコードでフォームを送信しますが、このフォームは ajax の結果を待たずにすぐに送信されます。次に、onclick関数で「a」タグを使用してフォームを送信したい場合、これで機能しますが、「enter」キーを使用してフォームを送信すると、ajaxコードが実行されません。次に、カーソルが入力フィールドにあるときにキープレスをバインドしてフォームを送信します。カーソルがフォームフィールドの内外にあるかどうかを確認する方法は?
<?php
if(isset($_POST['act'])){
$rs=array(
'status'=>0
);
echo json_encode($rs);
exit;
}
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<div class="filters">
<form onsubmit="return filters.submit()">
<input type="text" name="name" />
<input type="submit" value="submit" />
</form>
</div>
<script type="text/javascript">
var filters={
form: $('.filters').find('form'),
submit: function (){
$.ajax({
url:'index.php',
type:'POST',
data:{
act:'ajax'
},
success:function(rs){
eval('var rs='+rs);
if(rs['status']==1){
return true;
}else{
return false;
}
}
});
}
}
</script>