0

我把自己弄得有点糊涂了,一个解决方案成功了一半。

基本上,我使用.load()附加到 a的基本功能<select>来拉另一个<select>通过 PHP/MySQL 填充的表格。然后我想要的是这个新加载<select>的然后加载另一个通过 PHP/MySQL 填充的表单。当用户更改其中任何一个时,可以<select>说,更改实际上需要向下移动堆栈。

在选择选项并且关闭A .change()OFF时,它在其工作时,工作完全正常。问题是第二个的初始加载<select>,我不知道如何触发.load()我想要的。

当前版本在这里: http: //kick.hooplahosts.co.uk/fire/FireServiceProject/bag.php

并且违规表格在左侧(级别,编号和项目),您会看到首次加载或刷新的多选不加载,或者即使在更改包级别时,它也会在包号中进行实际选择做我想做的事。

我已经编辑了大部分不相关的 html,并且脚本有点“正在进行中”

HTML

 <form action="php/bagCreate/newBag_bag.php" method="post" id="form1">
    <h2>Select Bag Level</h2>
    <select id="target" class="get" name="bagLevel">
      <option>Level 1</option>
      <option>Level 2</option>
      <option>Level 3</option>                                
    </select>        
 </form>            

<div id="upForm">
  <label>Bag Number</label>
  <form action="php/bagCreate/getContents_bag.php" method="post">
     <select id="target" class="getContents" name="bagNumber">
        <option>1</option>
        <option>2</option>
        <option>3</option>
     </select>        
  </form>

  <div id="upFormContents">
  <form>
  <label>Items in Bag</label>
     <select id="select2" class="input-large" multiple="multiple" size="20">
        <option>dsfgdsg</option>
        <option>dsfgdsgdfgfd</option>
    </select>        
  </form> 

JS

$(document).on("change", "select.getContents", function(){
  var action = $('select.getContents').parent().attr('action');        
  fillContents(action)    
});

$(document).on("ready", "select.getContents", function(){
  var action = $('select.getContents').parent().attr('action');        
  fillContents(action)
});  

function fillContents(action){        
   $('#upFormContents').load(action,    
   $('select.getContents').parent().serializeArray());
}
4

1 回答 1

1

您可以在加载第二个时触发更改<select>事件trigger('change');

在您的情况下,例如:

$('.getContents').trigger('change');

当您更改第一个选择(包级别)时,请务必使用此代码触发第二个选择。

于 2013-01-31T17:40:37.660 回答