タイトルが変な感じだが、inputのvalueの長さでイベントを発生させたいのだが、ページ読み込み時に発生させることができなかったので、どうしようという案件。
どうも画像を読み込んだ時にはonloadイベント発生するが、タグがレンダリングされる時には、onloadイベントは発生しないようだ。なので、ページ読み込み時に$letterpackElements.each(function(){$(this).keyup();でkeyupイベントを発生させることで、.onの以降の処理も連動して(?)発生させることができた。よかった。実はパイセンが書いてくれたので、私はあまりよくわかっていない。
<script>
$(function(){
var $letterpackElements = $("[id^=letterpack_]");
$letterpackElements.on('keyup',function(){
var letterpack_num = ($(this).val());
if(letterpack_num.length > 10 && letterpack_num.length < 14){
var url='https://xxx/search/?requestNo1='+letterpack_num+'&locale=ja';
$(this).next('a').attr('href',url);
$(this).next('a').html("リンク表示");
}else{
$(this).next('a').attr('href','');
$(this).next('a').html("");
}
});
$letterpackElements.each(function(){
$(this).keyup();
});
});
</script>