将select的内容拆分为不同的字段

时间:2011-06-29 17:45:00

标签: javascript events

我正在尝试将由管道分隔的值发送到2个不同的字段。由于某种原因它不起作用。

有什么想法吗?

<script type="text/javascript">
function folder(selectVeld)
{
   // Stuur informatie terug
   var id = (selectVeld.options[selectVeld.selectedIndex].value).split('|');
   // Id
   document.getElementsByName('folder_id').value = id[0];
   // Naam
   document.getElementsByName('folder_naam').value = id[1];
}
</script>

<tr>    
    <td><?php echo $lang['folder']; ?>:</td>
    <td><select name="folder" onChange="folder(this)">
    <option value="geen"><?php echo $lang['no_folder']; ?></option>
    <?php
        $sql = "SELECT id, naam FROM 2_folder ORDER BY naam ASC";
        $res = mysql_query($sql,$con);  
        while ($row = mysql_fetch_assoc($res)){
    ?>
        <option <?php if($row['id'].'|'.$row['naam'] == $folder){ echo 'selected="selected"'; } ?> value="<?php echo $row['id'].'|'.$row['naam']; ?>"><?php echo $row['naam'] ?></option>
    <?php } ?></select>
    </td>
</tr>

    <input type="text" name="folder_id" value="<?php echo $folder_id; ?>" size="5" style="background-color: #e7e7e9" readonly="readonly" />

    <input type="text" name="folder_naam" value="<?php echo $folder_naam; ?>" size="5" style="background-color: #e7e7e9" readonly="readonly" />

2 个答案:

答案 0 :(得分:2)

document.getElementsByName会返回array个元素,即使只有一个元素具有该名称。

document.getElementsByName('folder_id')[0].value = id[0];
document.getElementsByName('folder_naam')[0].value = id[1];

应该做的伎俩。 jsfiddle sample

答案 1 :(得分:0)

我通过仅使用folder_id避免了这个问题,并在发送表单后找到了带有单独查询的名称。