Javascript copyText选择显示值的选项值,但我需要描述

时间:2013-01-29 11:03:43

标签: javascript html forms

我正忙着一个带有步骤的html订单。在最后一步,我正在做一个总结。除了类别,这很顺利。类别值由数据库填充,并且是类别中的id。但我真正需要的是选项中的文字。

例如,类别id = 62,带有文字:Huurwoning,现在它显示62,但我想显示Huurwoning。这是jsfiddle:http://jsfiddle.net/H9McM/1/

<select name="catid" onmouseup="copyText(this)" id="catid" class="inputbox required"><option value="" >Selecteer Categorie&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option><option value="62" >Huurwoning</option><option value="58" >Kamerhuur</option><option value="59" >Parkeren</option><option value="60" >Vakantiewoning</option><option value="61" >Bedrijfsruimte</option></select>

<script>
function copyText(e)
 {
    var matchingElements = document.getElementsByClassName( e.name + 'preview' ),
        matchCount = matchingElements.length;

    for (var i =0; i< matchCount; i++){
       matchingElements[i].innerHTML = e.value;
    }
 } </script>

<script>
$(".catidpreview").draggable({ containment: '#dragcontainer' });
</script>

<div class="catidpreview"></div>

2 个答案:

答案 0 :(得分:0)

如果您指的是选项文字,可以试试这个:

matchingElements[i].innerHTML = e[e.selectedIndex].text;

同样onchange可能是此任务的更好事件。

jsFiddle

的现场演示

修改

由于您已在评论中补充了您的问题,因此以下是for循环中您需要的内容:

matchingElements[i].innerHTML = (e.type === 'text') ? e.value : e[e.selectedIndex].text;

jsFiddle

的固定演示

答案 1 :(得分:0)

您好,请尝试以下代码....

HTMLCode:

<select name="catid" onmouseup="copyText(this)" id="catid" class="inputbox required"><option value="" >Selecteer Categorie&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option><option value="62" >Huurwoning</option><option value="58" >Kamerhuur</option><option value="59" >Parkeren</option><option value="60" >Vakantiewoning</option><option value="61" >Bedrijfsruimte</option></select>
<input name="title" onkeyup="copyText(this)" value="">

<div class="catidpreview"></div>
<div class="titlepreview"></div>   

JavaScript代码

function copyText(e)
 {

    var matchingElements = document.getElementsByClassName( e.name + 'preview' );
        matchCount = matchingElements.length;

  if(e.nodeName=="INPUT")
  {

    for (var i =0; i< matchCount; i++){
       matchingElements[i].innerHTML = e.value;;
    }
  }
     else
     {
    for (var i =0; i< matchCount; i++){
       matchingElements[i].innerHTML = e[e.selectedIndex].innerHTML;
     }
     }
} 



$(".catidpreview").draggable({ containment: '#dragcontainer' });
$(".titlepreview").draggable({ containment: '#dragcontainer' });

更新小提琴:http://jsfiddle.net/H9McM/10/