从下拉列表javascript事件中选择

时间:2015-08-28 21:19:13

标签: javascript jquery html events dom

我有这个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" width="150px" readonly="readonly" />%
</p>

Javascript方法

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

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

我尝试onselect代替onchange,但我遇到同样的问题。

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

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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');
});

使用对选择框非常有效的更改方法。只需选中当前未选中的项目,如果没有,请将输入值设置为所选值。最后,您要删除任何选项&#34; selected = selected&#34;并将当前的一个设置为选中。

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

希望这有帮助。

http://jsbin.com/populo

答案 2 :(得分:0)

正如DrunkWolf所提到的那样总是添加一个空选项,或者你可以尝试onblur或onclick事件,这取决于你实际上要做什么。

答案 3 :(得分:0)

好的,只是为了接近您的代码,请执行以下操作: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中执行此操作!祝你好运。