2016-07-13 62 views
1

我有一個問題jQuery動態頁面。 我有一個選擇輸入:jQuery在AJAX調用後不運行

<select id="select"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
</select> 

和文本輸入:

<input id="input" type="text" value="123456789"></input> 

和我在劇本寫道:

function changeLength(){ 
    var place = document.getElementById('input'); 
    var placeText = 0; 
    placeText = place.value; 
    if(placeText.length > 5){ 
     place.style.fontSize = "10px"; 
    } 
} 

$(body).on("change","#select",function(){//AJAX is called 
    changeLength(); 
}); 

$(document).ready(function(){ 
    changeLength(); 
}); 

功能changeLength之前 Ajax的打電話,但之後不是。

+0

你爲什麼要混合香草和jquery?有沒有特別的原因? – guradio

+3

你的ajax函數在哪裏? –

+0

你能解釋一下你說的是什麼意思嗎?你可以分享你遺漏的代碼(你寫的「AJAX被稱爲」的地方)嗎? – smarx

回答

1

這通常是因爲HTML選擇輸入被刪除,Ajax請求後的頁面重構,你將需要做另一個呼叫以下重新註冊的處理程序中的AJAX完成後:

$(body).on("change","#select",function(){//AJAX is called 
    changeLength(); 
}); 

例如,在ASP.net,您使用RegisterStartupScriptBlock執行這樣的代碼AJAX回發完成後:

Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "selectHandler", " $(body).on('change','#select',function(){//AJAX is called changeLength();});", true); 

如果您正在使用jQuery做Ajax請求,並重建HTML頁面中選擇輸入,你需要再次執行相同的代碼塊等等。