2016-07-13 48 views
1

JQuery動的ページに問題があります。 私がセレクト入力があります。AJAX呼び出し後にjqueryが実行されない

<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が呼び出す前を働いているが、 以降はではありません。 HTMLの入力を選択するため、通常は

+0

なぜバニラをjqueryと混ぜているのですか?特別な理由はありますか? – guradio

+3

あなたのajax関数はどこですか? –

+0

働いているとか働いていないと言ったときの意味を説明できますか?そして、あなたが省略したコードを共有することができますか( "AJAX is called"と書いたところ)? – smarx

答えて

1

が削除され、ページ内の再構築のAjaxリクエストの後、あなたは、Ajaxが完了した後、次に別の呼び出しを行うことによって、再びハンドラを登録する必要がありますされています

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

は、ASP.netで、あなたは、AJAXポストバックが完了した後に、このようなコードを実行するRegisterStartupScriptBlockを使用します。

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

あなたはAJAX要求を行うと、ページ内のhtmlの選択入力を再構築するためにjQueryを使用している場合は、あなたは必要になるでしょう同じコードブロックを再度実行するなどの処理を行います。

関連する問題