2014-11-14 30 views
0

我有一个带有选择,无线电和复选框选项的表单。 PHP构建了分配给它们的选项和指示符的数组。如何在选择该选项时显示每个选项的指示符?选择Select时显示文本

选择和期权代码:

<select onchange="bundle.changeSelection(this)" id="option-1" name="bundle_option_1" class="option-1"> 
    <option value="1">Option1</option> 
</select> 
<ul class="options-list"> 
    <li><input type="radio" onclick="bundle.changeSelection(this)" class="radio" id="bundle-option-2-select-2" name="bundle_option_2" value="2"/></li> 
</ul> 
<ul class="options-list"> 
    <li><input type="checkbox" onclick="bundle.changeSelection(this)" class="checkbox" id="bundle-option-3-select-3" name="bundle_option_3" value="3"></li> 
</ul> 

阵列产生:

Array ([0] => Designator1 [1] => Designator2 [2] => Designator3 [3] => Designator4 [4] => Designator5) 

股利显示:

<div class="configuration" id="designator"></div> 

谢谢。

+0

当某人点击或选择一个选项时,将会插入id为#designator的div所需的html会是什么? – TotalWipeOut 2014-11-26 14:08:11

+0

所需的html已经在数组中。因此,如果用户选择数组[0]中的选项1,则所显示的所需html将为“指示符1”。指定者将始终是文本(字母和数字,但不是符号)。 – Dustin 2014-11-26 18:59:34

回答

0

我不知道Magento的,但这似乎只是需要一个JavaScript(以及PrototypeJS)解决方案,所以试试这个:

<script> 
document.observe('dom:loaded', function() { 
    $$('[name^=bundle_option]').invoke('observe','click',function(e) { 
     var el=e.element(), 
      output=$('designator'); 
     if(el.nodeName=='SELECT') { 
      output.innerHTML=el.options[el.selectedIndex].text; 
     } 
     else if(el.nodeName=='INPUT' && (el.type=='checkbox' || el.type=='radio')) { 

      //- just puts in the value, prob not what you want 
      //output.innerHTML = el.value; 

      //- or if theres a label something like 
      //- (COMPLETE GUESS as dont have the HTML) 
      //- find the label for the input 
      var label = el.up().select('label')[0]; 

      //- grab its text content and put in the output div 
      if(label) output.innerHTML = label.textContent || label.innerText; 
     } 
    }); 
}); 
</script> 

在页面上放置这段代码的某个地方,我不能对此进行测试,以便让我知道它是否适合您的正确解决方案,以及它是否可行!