我想运行ajax来获得一个值,如果值为true,然后提交表单,下面的代码使用onsubmit = xxx,但这种形式将立即提交,而不是等待ajax结果。那么我想用一个带有onclick函数的“a”标签来提交表单,这可以做这个工作,但是当我用“enter”键提交表单时,不会运行ajax代码。那么我想在光标位于输入字段提交表单时绑定按键。如何检查游标是否在表单字段中?我怎么能知道光标现在焦点在输入或textarea或选择
<?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>
为什么你不能让表单提交发生,并在一个请求中同时执行任何AJAX请求?如果你需要进行验证,你应该绑定到表单的'submit'事件并有条件地取消它,但这通常用于客户端验证。我认为做一个提交来测试你是否可以做第二次“真正”提交是你逻辑中的一个非常严重的问题。 – meagar