我在 DOM 准备好时让一些 jQuery 运行时遇到问题。
我有两个表单,每个表单<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
这适用于单个表单,但第二个不会加载
$(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());
});
更改select.get
为this
ready 函数内部不会导致加载任何表单。
两种形式的使用change()
都非常好,尽管它有点重复
$('select.get').change(function() {
var action = $(this).parent().attr('action');
var target = $(this).data('target');
$('#'+target).load(action, $(this).parent().serializeArray());
});