我有一个简单的HTML表单:
<form id="contactForm" method="post" action="./validateForm.php">
<table>
<tr>
<td>Vorname</td>
<td><input type="text" name="firstName" /></td>
</tr>
<tr>
<td>Nachname</td>
<td><input type="text" name="surname" /></td>
</tr>
<tr>
<td>E-Mail</td>
<td><input type="text" name="eMail" /></td>
</tr>
<tr>
<td>Alter</td>
<td><input type="text" name="age" /></td>
</tr>
</table>
</form>
我有这个jQuery:
$(document).ready(function() {
function validationResult(objData, strStatus, objXMLHttpRequest) {
if('error' === objXMLHttpRequest.responseText)
alert('error');
else
alert('success');
}
$('#contactForm input').focusout(function() {
var strLeftField = $(this).attr('name');
var strLeftFieldValue = $('input [name=' + strLeftField + ']').val();
$.ajax({ type: 'POST', url: './validateForm.php', data: strLeftField=strLeftFieldValue, async: true, cache: false, success: validationResult });
});
});
我想知道为什么.focusout()事件会引发两次。它必须与AJAX请求有关,因为如果我将它注释掉,它就不会激发两次。但为什么呢?
focusout()事件是否是正确的事件,以确定用户是否在表单中留下了输入字段?
如果这是相关的,我正在使用jquery-2.0.3.min.js。
提前感谢任何提示。
最好的问候。