2015-08-28 58 views
0

我有這樣的HTML的一部分代碼:JavaScript事件

<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輸入的值設置爲從所選擇的值dropdownlist.It只有在dropdownlist包含多個元素時才能正常工作。

我嘗試onselect而不是onchange但我得到同樣的問題。

所以當列表中只包含一個元素時,如何解決這個問題?

+1

嘗試wiith innerhtml也在這裏看看這個也可能會給你一些想法http://stackoverflow.com/questions/5069294/get-inner-html-of-the-selected-option – hengecyche

+1

適合我的作品:http ://jsfiddle.net/z2uao1un/ -edit-我現在看看你的問題是什麼。交換意味着它必須觸發變化事件,沒有任何選擇永遠不會有變化。 – Michelangelo

+0

@Mikey我的問題是當我只有一個元素不是兩個 –

回答

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」的任何選項的屬性,並將當前的屬性設置爲selected。

只需在HTML末尾的$(document).ready()包裝器中包含此內容,並且更改事件將錨定到select字段。

希望這會有所幫助。

http://jsbin.com/populo

+0

我的代碼工作正常。我有問題,只有當我有一個元素 –

+1

然後,你需要插入一個空白'請選擇一個選項'選項。 http://jsbin.com/populo/ - 請參閱修改的方法。它不禮貌地向用戶展示一個已經選擇了選項的表單,它總是最好有一個預先選擇的選項,它使得更改更易於處理和表單驗證。就好像您的用戶'忘記'更改價值,如果沒有默認'請選擇一個選項',您在驗證過程中不一定會實現 –

1

要麼總是給出一個空的選項,要麼在輸出選擇的代碼中檢查選項的數量,並且如果只有一個選項,則直接設置輸入值。

只有一個選項的選擇沒有事件,因爲該選項將被默認選中,所以沒有更改,也沒有事件。

0

由於DrunkWolf提到總是添加一個空選項,或者您可以嘗試使用onblur或onclick事件,具體取決於您實際嘗試執行的操作。

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!祝你好運。