首先,我希望我對jQuery不夠熟悉,因爲我很少使用它。當我嘗試使用$ .ajax()函數但在使用$ .post()時完美地工作時,我有以下代碼顯然不起作用。我相信這可能與我在1.8之前學習jQuery的事實有關,我幾乎沒有研究過任何$ .ajax函數,並且從那以後我一直沒有使用它。
在ajax.php我有虛擬文本,看看是否ajax.php正在響應
檢查API文檔後,它似乎有點混亂對所提供的信息量是壓倒性的。
如果有人可以看看我的代碼,並指出我可能出現的錯誤並提出解決方案,我將不勝感激。
爵士小提琴來源:http://jsfiddle.net/user16arts/Xuk66/
HTML:
<form method="post" action="ajax.php">
<input type="text" name="name" value="name" defVal="name" maxlength="16">
<input type="submit" value="submit">
<p class="submitErr"></p>
的jQuery:
$(document).ready(function() {
$('body').fadeIn(300);
$('input').focusin(function() {
if ($(this).val() == $(this).attr('defVal')) {
$(this).val('');
}
}).focusout(function() {
if ($(this).val() === '') {
$(this).val($(this).attr('defVal'));
}
});
$('form').submit(function (e) {
var inputField = $(this).find('input[type="text"]');
if ($(inputField[0]).val() == $(inputField[0]).attr('defVal')) {
var err_element = $(this).find('p.submitErr');
$(err_element).html('ERROR::INVALID SUBMIT VALUE!').click(function() {
$(this).hide();
}).fadeIn(300).delay(3000).fadeOut(300);
} else {
$.ajax({
url: $(this).attr('action'),
data: '1=1',
type: 'POST',
statusCode: {
404: function() {
alert('ajax:: error 404!');
}
},
complete: function() {
$('div.content').fadeIn(300);
},
sucess: function (data) {
$('div.content').html(data);
},
error: function() {
alert('ajax error');
}
}); /* END OF $.ajax */
}
e.preventDefault();
});
});
你想用'data:'1 = 1''部分做什麼? – Burak
所以我可以在ajax.php中測試是否設置了變量。我不確定是否正確發送$ _post。 – user3111896
'e.preventDefault()'不是'return false'的直接替代/替代。換句話說,'preventDefault'在函數的頂部而不是在底部,以防止在函數的其餘部分運行時立即停止默認操作。請參閱示例:http://api.jquery.com/event.preventdefault/ – Sparky