Ι需要用以下2個腳本的組合,但儘管我迄今所做的所有組合,我無法得到它的工作100%。需要一些幫助合併2個jQuery的腳本和行爲
我用一個顏色框來顯示產品的詳細信息頁面,其中有一個有添加物品到購物車中各個領域的一種形式。提交表單後,我想顯示一個提醒,然後關閉該提示框,以便底層頁面(即在最前面打開colorbox)保持不變。
有了這個腳本
$("#productadd").submit(function(){ // WORKS FINE EXCEPT THE ENCODING
$.post(
$(this).attr('action'),
$(this).serialize(),
function(data){
alert('Product was added to your order');
$().colorbox.close();
});
一切正常,除了編碼,這在我的情況是ISO-8859-7(希臘)的罰款。 如果我使用這個腳本,然後編碼是好的,但後正在用默認的行爲,重定向到表單的動作定義的網址發出。
$("#productadd").submit(function(){ //ENCODING OK, COLORBOX.CLOSE() AND ALERT FAIL
$.ajax({
data: data,
type: "POST",
url: $(this).attr('action'),
dataType: 'json',
beforeSend : function(xhr) {
xhr.setRequestHeader('Accept', "text/html; charset=iso-8859-7");
},
success: function(json) {
alert('Product added to cart!'),
$().colorbox.close(),
itemAddCallback(json);
},
error: function (xhr, textStatus, errorThrown) {
$("#error").html(xhr.responseText);
}
});
如果有一個jQuery等效xhr.setRequestHeader( '接受', 「text/html的;字符集= ISO-8859-7」)我會很樂意使用它了。另外,我該如何聲明數據:所以我沒有得到'數據未定義'的錯誤? (儘管錯誤,日期提交罰款)。
UPDATE:從那些誰迄今回答各種建議後,這是我的代碼如下所示:
$("#productadd").submit(function(){
$.ajax({
data: $(this).serialize(),
type: "POST",
url: $(this).attr('action'),
dataType: 'text',
mimeType: "text/html; iso-8859-7",
success: function() {
alert('Item added to your order'),
$().colorbox.close();
},
error: function (xhr, textStatus, errorThrown) {
$("#error").html(xhr.responseText);
}
});
我唯一的問題是,雖然它提交併顯示報警等,提交的數據用utf-8而不是iso-8859-7編碼,有什麼想法?
它可能會更好後,然後永遠...無論如何,請檢查[這](http://stackoverflow.com/a/15205281/655756)的答案。 – n1ckolas 2013-03-12 20:02:44