codeigniter form_dropdown with onChange don'不起作用
codeigniter form_dropdown with onChange don't work
无错误但不工作:我需要在健身房设置一个四顺序的运动选择,所以我必须使用四个下拉列表,我必须从数据库中检索数据列表,这是一个包含30个学科的数组drom数据库。当我在第一个下拉列表中选择第一个时,第二个下拉列表可能不包含这个值,而且当我从第三个下拉列表中选择一个值时,这个下拉列表必须不包含下拉列表1和下拉列表2中的值1和值2,关于下拉列表4,它必须只包含27
我的观点:
<?php $sports = array(
'aucun choix' => ' Aucun choix',
'aerobic' => ' 01- Aerobic',
'musculation' => ' 02- Musculation',
'judo' => ' 03- Judo',
'taekwondo' => ' 04- Taekwando',
'aikido' => ' 05- Aikido',
'karaté' => ' 06- Karaté',
'haltérophilie' => ' 07- Haltérophilie',
'sport de salle' => ' 08- Sport de salle',
'sport feminin' => ' 09- Sport feminin',
'sport plein air' => ' 10- Sport plein air',
'sport de pêche' => ' 11- Sport de pêche',
'basketball' => ' 12- Basketball',
'hand-voley ball' => ' 13- Hand-voley ball',
'football' => ' 14- Football',
'pétanque' => ' 15- Pétanque',
'natation' => ' 16- Natation',
'jeux d''echec' => ' 17- Jeux d''echec',
'golf' => ' 18- Golf',
'cyclisme' => ' 19- Cyclisme',
'tenis' => ' 20- Tenis',
'equitation' => ' 21- Equitation',
'chasse tir vole' => ' 22- Chasse tir vole',
);
?>
<script>
function callSave(select) {
var parent = select.parentNode;
var usedValues = {};
for (var i = 0; i < parent.children.length; ++i) {
var s = parent.children[i];
if (s.nodeName.toLowerCase() != 'select') {
continue;
}
if (s.value != '') {
usedValues[ s.value ] = s;
}
}
for (var i = 0; i < parent.children.length; ++i) {
var s = parent.children[i];
if (s.nodeName.toLowerCase() != 'select') {
continue;
}
for (var j = 0; j < s.children.length; ++j) {
var o = s.children[j];
if (o.nodeName.toLowerCase() != 'option') {
continue;
}
var p = o.value == '' ? undefined : usedValues[o.value];
if (p == undefined || p == s) {
o.style.display = '';
}
else {
o.style.display = 'none';
}
}
}
}
</script>
<div <?php if(form_error('sport_ordre1')) { echo 'class="control-group error"'; } else {echo 'class="control-group"';} ?> >
<label class="control-label">Sport ordre 1 :</label>
<div class="controls">
<?php echo form_dropdown('sport_ordre1', $sports , $this->input->post('sport_ordre1') ? $this->input->post('sport_ordre1') : $participant_sport->sport_ordre1 , 'onChange="callSave(this)"'); ?>
<span class="help-inline"><?php echo form_error('sport_ordre1'); ?></span>
</div>
</div>
<div <?php if(form_error('sport_ordre2')) { echo 'class="control-group error"'; } else {echo 'class="control-group"';} ?> >
<label class="control-label">Sport ordre 2 :</label>
<div class="controls">
<?php echo form_dropdown('sport_ordre2', $sports , $this->input->post('sport_ordre2') ? $this->input->post('sport_ordre2') : $participant_sport->sport_ordre2 ,'onChange="callSave(this)"'); ?>
<span class="help-inline"><?php echo form_error('sport_ordre2'); ?></span>
</div>
</div>
<div <?php if(form_error('sport_ordre3')) { echo 'class="control-group error"'; } else {echo 'class="control-group"';} ?> >
<label class="control-label">Sport ordre 3 :</label>
<div class="controls">
<?php echo form_dropdown('sport_ordre3', $sports , $this->input->post('sport_ordre3') ? $this->input->post('sport_ordre3') : $participant_sport->sport_ordre3 , 'onChange="callSave(this)"'); ?>
<span class="help-inline"><?php echo form_error('sport_ordre3'); ?></span>
</div>
</div>
<div <?php if(form_error('sport_ordre4')) { echo 'class="control-group error"'; } else {echo 'class="control-group"';} ?> >
<label class="control-label">Sport ordre 4 :</label>
<div class="controls">
<?php echo form_dropdown('sport_ordre4', $sports , $this->input->post('sport_ordre4') ? $this->input->post('sport_ordre4') : $participant_sport->sport_ordre4 , 'onChange="callSave(this)"'); ?>
<span class="help-inline"><?php echo form_error('sport_ordre4'); ?></span>
</div>
</div>
问题是,当我在一个下拉列表中选择一个值时,它会出现在其他下拉列表中,所以onChange方法不适用于这种情况。请帮忙吗?
我认为,当您调用parentNode时,应该通过其id访问DOM。由于您没有通过id访问它,所以您只需将DOM元素传递给函数。
'onChange="callSave(this.id)"';
但你到底需要什么。您可以使用jquery。
相关文章:
- AngularJS指令部分应用的函数don'不起作用
- Don'我不明白为什么我的setInterval+jQuery;不起作用
- Ng点击don´不起作用
- NVD3图表控件don'在svg元素上挂接鼠标事件时不起作用
- getElementById.innerHTML don'似乎不起作用
- 两个不同的循环-都是don'不起作用
- AngularJS don'不起作用
- JS this和self-don'不起作用
- 谷歌地图API v3-缩放参数don'不起作用
- Yeoman webapp deploy,我的json文件don'不起作用
- JQuery Accordion内容链接don'不起作用
- C#/VB.net,然后单击javascript don'不起作用
- $.ajax成功处理程序don'中的jQuery方法;不起作用
- Angular$scope$注意(for in..)don'不起作用
- 模态框功能齐全-les.links don'不起作用
- 引导标记输入确认密钥don'不起作用
- socket.io javascript don'不起作用
- Javascript createElement并添加className填充don'不起作用
- 在ajax页面脚本don'不起作用.任何变通方法
- 不同的Livevalidation取决于Javascript don´不起作用