ページの読み込み時に fwre-sel-region_id の change メソッドを呼び出そうとしています。通常、このメソッドは、選択 ID のオプション選択が変更された後に呼び出されます。選択IDには有効なオプションが1つしかないため、これは機能しません。したがって、JavaScriptを介して選択IDを変更した後に呼び出されるようにしたいと思います。選択 ID のインデックスの変更に成功したので、fwre-sel-region_id の変更メソッドを呼び出したいと思います。
<script type="text/javascript">
setTimeout(function() {
if ($('fwre-sel-region_id')) {
$('fwre-sel-region_id').addEvent('change', function() {
$('fwre-sel-city_id').options.length = 0;
if (this.value == '(add-value)') return;
var img = new Element('img', {
'id': 'fwre-wait-region',
'style' : 'margin:0;padding:0;',
'src': '/administrator/components/com_fwrealestatelight/assets/images/spinner.gif'
});
img.inject($('fwre-sel-city_id'), 'after');
new Request.JSON({
url: '/properties?format=raw&task=loadDictionary',
onSuccess: function(obj) {
if ($('fwre-wait-region')) $('fwre-wait-region').dispose();
if (obj.msg) {
alert(obj.msg);
} else if (obj.data) {
for (var i = 0; i < obj.data.length; i++) {
var op = new Element('option', {
'value': obj.data[i].id
});
op.inject($('fwre-sel-city_id'));
op.innerHTML = obj.data[i].name;
}
}
$('fwre-sel-city_id').fireEvent('change');
}
}).get({'parent_id':$('fwre-sel-region_id').value,'dname':'city_id'});
});
}
}, 500);
このスクリプトで上記のメソッドを呼び出そうとしています
<script type="text/javascript" >
window.addEvent('load', function(){
var country = document.id('fwre-sel-country_id');
var region = document.id('fwre-sel-region_id');
$(country).selectedIndex = 1;
region.fireEvent('change');
});
</script>
私のスクリプトは、ファイルとhtmlのスクリプトの下にありますが、region.fireEvent('change');の場合です。が実行されても、最初のメソッドに戻ることはありません。なぜこうなった?