从下拉列表 javascript 事件中选择

Posted

技术标签:

【中文标题】从下拉列表 javascript 事件中选择【英文标题】:Selection from dropdownlist javascript event 【发布时间】:2015-11-23 15:19:45 【问题描述】:

我有这个 html 部分代码:

 <p><label>Taxe </label>
    <select id="id_taxe" name="id_taxe" style="width: 100px;" onchange="taxselection(this);"></select>
    <input id="taxe" name="taxe" class="fiche"  readonly="readonly" />%
</p>

Javascript 方法

function taxselection(cat)

    var tax = cat.value;
    alert(tax);
    $("#taxe").val(tax);

我想将taxe 输入的值设置为从下拉列表中选择的值。只有在下拉列表包含多个元素时才能正常工作。

我尝试使用onselect 而不是onchange,但我遇到了同样的问题。

那么当列表只包含一个元素时,我该如何解决这个问题呢?

【问题讨论】:

尝试使用 innerhtml 也在这里看看这个也可能会给你一些想法***.com/questions/5069294/… 对我来说很好用:jsfiddle.net/z2uao1un -edit- 我现在明白你的问题是什么了。是的 onchange 意味着它必须触发 change 事件,没有选项就永远不会发生变化。 @Mikey 我的问题是当我只有一个元素而不是两个元素时 @LamloumiAfif 是的,我明白了,我已经发布了一个解决方法作为答案。 【参考方案1】:

这行得通:

$('#id_taxe').change(function()
  var thisVal = $(this).val();
  var curVal = $('#taxe').val();

  if(thisVal != curVal)
    $('#taxe').val(thisVal);
  $('#select option:selected').removeAttr('selected');
  $(this).attr('selected','selected');
);

使用对选择框非常有效的更改方法。只需检查所选项目当前未选中,如果未选中,请将输入值设置为所选值。最后,您要删除任何“selected=selected”选项的属性并将当前选项设置为选中。

只需将其包含在 HTML 末尾的 $(document).ready() 包装器中,更改事件将锚定到选择字段。

希望这会有所帮助。

http://jsbin.com/populo

【讨论】:

我的代码运行良好。只有当我有一个元素时我才有问题 然后你需要插入一个空白的“请选择一个选项”选项。 jsbin.com/populo - 见修改后的方法。向用户展示一个已经选择了选项的表单是不礼貌的,最好有一个预选选项,它使更改和表单验证更容易处理。好像您的用户“忘记”更改值一样,如果没有默认的“请选择一个选项”,您在验证期间不一定会意识到【参考方案2】:

要么总是给出一个空选项,要么在输出选择的代码中检查选项的数量,如果只有 1 个选项,则立即设置输入值。

只有 1 个选项的选择没有事件,因为默认情况下会选择该选项,因此没有更改,也没有事件。

【讨论】:

【参考方案3】:

正如 DrunkWolf 提到的,始终添加一个空选项,或者您可以尝试 onblur 或 onclick 事件,具体取决于您实际尝试执行的操作。

【讨论】:

【参考方案4】:

好的,只是为了贴近你的代码,这样做:http://jsfiddle.net/z2uao1un/1/

function taxselection(cat) 
    var tax = cat.value;
    alert(tax);
    $("#taxe").val(tax);


taxselection(document.getElementById('id_taxe'));

这将调用函数 onload 并获取元素的值。您还可以向元素添加 onchange 事件处理程序。我强烈建议不要在 HTML 中这样做!祝你好运。

【讨论】:

以上是关于从下拉列表 javascript 事件中选择的主要内容,如果未能解决你的问题,请参考以下文章

Laravel/Javascript:在选择不同的选择/下拉列表后填充选择/下拉列表

使用JavaScript完成控制下拉列表左右选择

python GAE中的动态下拉列表

从下拉列表中选择值,第二个下拉列表自动更改

当用户从浏览器存储表单下拉列表中进行选择时会触发哪些事件?

如何使用第一个下拉列表的 onChange 事件填充另一个下拉列表?