Javascript 选择框getID

Javascript 选择框getID,javascript,php,Javascript,Php,我正在尝试获取一个选择框的选择id,但是我不知道,有人能帮我吗 选择框的代码: 编辑的选择框代码: <li class="fields"> <div> <div class="field"> <div class="form-group"> <label class=

我正在尝试获取一个选择框的选择id,但是我不知道,有人能帮我吗

选择框的代码:

编辑的选择框代码:

 <li class="fields">
                <div>
                    <div class="field">
                        <div class="form-group">
                            <label class="required" for="type_id"><?php echo $this->__('Occasion') ?><em>*</em></label>
                            <div class="input-box">
                                <select id="type_id" name="type_id" title="<?php echo $this->__('Occasion') ?>" class="validate-select form-control" onChange="criaDados(), showId(<?php $this->getId() ?>)" <?php if (!is_null ($_e->getId())) { echo "style='display: none;'"; } ?> >

                                   <option value=""><?php echo $this->__('Please select occasion') ?></option>
                                   <?php foreach($_e->getTypes() as $k=>$v):?>
                                    <option value="<?php echo $k ?>" <?php if($_e->getTypeId() == $k) echo 'selected'?>><?php echo $this->htmlEscape($v) ?></option>
                                   <?php endforeach; ?>
                                </select>

                                <input type="text" value="<?php echo $_e->getTypes()[$_e->getTypeId()] ?>"  class="form-control" disabled <?php if (is_null ($_e->getId())) { echo "style='display: none;'"; } ?> />
                            </div>
                        </div>
                    </div>
                    <div class="field">
                        <div class="form-group">
                            <label class="required" for="date"><?php echo $this->__('Date') ?><em>*</em></label>
                            <div class="input-box">
                                <div class="input-range input-date">
                                    <?php echo $this->getDateInput($_e->getDate()) ?>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </li>

如果要获取所选项目的id,请在select中添加一个
onchange
事件 比如
onchange=“showid(this)”

然后是javascript

function showid(ids) {
      console.log(ids[ids.selectedIndex].value); // get value
      console.log(ids[ids.selectedIndex].id); // get id
    }
如果您想要jquery解决方案,请执行以下操作

$('#type_id').change(function(){
   alert($(this).find('option:selected').attr('id'));
});
<div class="field">
    <div class="form-group">
        <label class="required" for="type_id"><?php echo $this->__('Occasion') ?><em>*</em></label>
        <div class="input-box">
            <select id="type_id" name="type_id" title="<?php echo $this->__('Occasion') ?>" class="validate-select form-control" onChange="criaDados(), showId('this.id') { echo "style='display: none;'"; } ?> >
               <option value=""><?php echo $this->__('Please select occasion') ?></option>
               <?php foreach($_e->getTypes() as $k=>$v):?>
                <option value="<?php echo $k ?>" <?php if($_e->getTypeId() == $k) echo 'selected'?>><?php echo $this->htmlEscape($v) ?></option>
               <?php endforeach; ?>
            </select>  
            <input type="text" value="<?php echo $_e->getTypes()[$_e->getTypeId()] ?>"  class="form-control" disabled <?php if (is_null ($_e->getId())) { echo "style='display: none;'"; } ?> />
        </div>
    </div>                              
</div>

我看到您使用了引导,所以jQuery已经不远了。 这个怎么样:

function showId(id){
var v = $("#" + id).val();
alert(v);
}
或者像这样:

$( "#"+id+" option:selected" ).text();

第二个获取所选文本,另一个获取所选选项的所选值。

您可以使用如下所示的this.id替换函数参数中的内容

$('#type_id').change(function(){
   alert($(this).find('option:selected').attr('id'));
});
<div class="field">
    <div class="form-group">
        <label class="required" for="type_id"><?php echo $this->__('Occasion') ?><em>*</em></label>
        <div class="input-box">
            <select id="type_id" name="type_id" title="<?php echo $this->__('Occasion') ?>" class="validate-select form-control" onChange="criaDados(), showId('this.id') { echo "style='display: none;'"; } ?> >
               <option value=""><?php echo $this->__('Please select occasion') ?></option>
               <?php foreach($_e->getTypes() as $k=>$v):?>
                <option value="<?php echo $k ?>" <?php if($_e->getTypeId() == $k) echo 'selected'?>><?php echo $this->htmlEscape($v) ?></option>
               <?php endforeach; ?>
            </select>  
            <input type="text" value="<?php echo $_e->getTypes()[$_e->getTypeId()] ?>"  class="form-control" disabled <?php if (is_null ($_e->getId())) { echo "style='display: none;'"; } ?> />
        </div>
    </div>                              
</div>

不知道你说的“获取”是什么意思,但我猜是JavaScript

document.getElementById('type-id');
showId(document.getElementById('type-id'));

如果您需要所选框的值,可以用showId(this.value)替换showId()”,这里有语法错误value=”“在输入标记中,我认为提问者试图找到所选项目的id。如果我错了,请纠正我,如果我对了,那么他是如何从您的代码中获取id的?我没有拒绝投票,但出于好奇,我可以问为什么不再回答吗?您好,无法运行事件并在我的警报中查看id()将编辑的代码放在那里@HelderRocha您不能一次对一个事件调用两个函数,但您可以做的是,如果需要,您可以从第一个函数内部调用第二个函数