使用jquery和php从剩余的选择框中删除选项

时间:2014-04-08 18:50:29

标签: javascript php jquery cakephp

我再次大声笑。

我正面临一个非常具体的问题,我需要帮助。

我还没准备好重构一些其他人所做的完整代码,他们问我是否有办法确保,在3个选择框中,我们可以从其他选项中移除,无论选择哪个,关于避免使用3个选择框,具有相同的值。

这是你给我的代码。

$questions = array (
    'question1' => 'question1',
    'question2' => 'question2',
    'question3' => 'question3',
    'question4' => 'question4',
    'question5' => 'question5'
);

然后是一些html

<table>
    <tr>
        <td>
            <?php echo $this->Form->input('pregunta1', array('options' => $questions/*, 'empty' => 'Seleccione una pregunta'*/));?><br>
            <?php echo $this->Form->input('respuesta1', array('required' => 'required')); ?>
        </td>
        <td>
            <?php echo $this->Form->input('pregunta2', array('options' => $questions/*, 'empty' => 'Seleccione una pregunta'*/));?><br>
            <?php echo $this->Form->input('respuesta2', array('required' => 'required')); ?>
        </td>
        <td>
            <?php echo $this->Form->input('pregunta3', array('options' => $questions/*, 'empty' => 'Seleccione una pregunta'*/));?><br>
            <?php echo $this->Form->input('respuesta3', array('required' => 'required')); ?>
        </td>
    </tr>
</table>

我需要的是一种从每个选择框中删除的方法,即使可能,也可以使用jquery在其他2中选择哪个问题。

非常感谢您的时间和精力!

的问候,

何塞·查法尔特

1 个答案:

答案 0 :(得分:0)

我可以通过jQuery轻松完成此操作的最简单方法是将每个选项的值设置为相同的ID。

<select id="option1">
  <option value="1">Text</option>
  <option value="2">Text2</option>
  <option value="3">Text3</option>
</select>

<select id="option2">
  <option value="1">Text</option>
  <option value="2">Text2</option>
  <option value="3">Text3</option>
</select>

<select id="option3">
  <option value="1">Text</option>
  <option value="2">Text2</option>
  <option value="3">Text3</option>
</select>

使用jquery,您需要挂钩.change()事件。 http://api.jquery.com/change/

每次将其中一个选项更改为其他选项时,使用.remove()函数http://api.jquery.com/remove/

从其他2中删除该选项
$('#option1').change(function(){
          var id = $(this).val();

          var hld = $('#option2');
          hld.find( 'option[value=' + id + ']').remove();
})


$('#option2').change(function(){
         var id = $(this).val();

         var hld = $('#option3');
         hld.find( 'option[value=' + id + ']').remove();
})

请注意,这是非常粗略的代码,但应该让您了解如何执行此操作。如果需要,还可以使用.append()函数添加选项。