我有这个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
,但我遇到同样的问题。
那么当列表只包含一个元素时,如何解决此问题?
答案 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()包装中,更改事件将锚定到选择字段。
希望这有帮助。
答案 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中执行此操作!祝你好运。