繁体   English   中英

使用jQuery和PHP从剩余的选择框中删除选项

[英]remove options from remaining select box with jquery and php

它再次我大声笑。

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

我还没有真正准备好重构其他人所做的全部代码,他们问我是否有办法确保在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个中选择任何问题。

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

问候,

何塞·夏法代(Jose Chafardet)

我可以通过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()函数将选项添加回去。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM