DOM の準備ができたときに jQuery を実行するのに問題があります。
私は 2 つのフォームを持っています。それぞれ<select>
に、コードの実行時に他のフォーム要素をロードする必要があります。
ユーザーが最初にページをロードするとき、これらの選択をオンready()
にして特定の属性 (フォーム アクション、ターゲットなど) を取得load()
し、それをロードします。change()
<select>
HTML
<form action="php/bagCreate/newBag_bag.php" method="post" id="form1">
<select id="target" data-target="upForm" class="get" name="bagLevel">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</form>
<form action="php/bagCreate/storeItems_bag.php" method="post" id="form2">
<select id="target2" data-target="upFormType" class="get" name="itemName">
<option>A</option>
<option>B</option>
<option>C</option>
</select>
</form>
JS
これは単一のフォームで機能しますが、2番目のフォームはロードされません
$(document).ready(function(){
$('select.get').ready(function() {
var action = $('select.get').parent().attr('action');
var target = $('select.get').data('target');
$('#'+target).load(action, $('select.get').parent().serializeArray());
});
ready 関数内に変更select.get
すると、どちらのフォームも読み込まれません。this
を使用change()
すると、両方の形式で完全に機能しますが、少し繰り返します
$('select.get').change(function() {
var action = $(this).parent().attr('action');
var target = $(this).data('target');
$('#'+target).load(action, $(this).parent().serializeArray());
});