2017-06-21 62 views
-2

我對JavaScript很陌生。所以我有一個選擇選項和一個輸入字段。我想要實現的是在我選擇特定選項時使輸入字段的值發生變化。這是我曾嘗試:當選擇選項時,Javascript更改輸入值

First Name: <input type="text" value="colors"> 

<select name=""> 
    <option>Choose Database Type</option> 
    <option onclick="myFunction(g)>green</option> 
    <option onclick="myFunction(r)>red</option> 
    <option onclick="myFunction(o)>orange</option> 
    <option onclick="myFunction(b)>black</option> 
</select> 

<script> 
function myFunction(g) { 
    document.getElementById("myText").value = "green"; 
} 
function myFunction(r) { 
    document.getElementById("myText").value = "red"; 
} 
function myFunction(o) { 
    document.getElementById("myText").value = "orange"; 
} 
function myFunction(b) { 
    document.getElementById("myText").value = "black"; 
} 
</script> 
+0

1.請思考DRY原則。 2.您沒有元素的ID爲「文本」。你正在傳遞未定義的參數。 4.你不使用它們。 – evolutionxbox

+0

不要試圖聽起來過於嚴厲/苛刻,我建議你先去看看一些基本的JavaScript教程,然後再問這樣的問題,就好像你知道即使是少量的JS,你也會知道這個問題。 – George

+0

@evolutionxbox 5.他的功能被命名爲相同的,所以覆蓋以前的,這是主要問題imo – George

回答

4

有幾件事情:

應在每個單獨的選項使用onchange功能,而不是onclick

使用每個選項value屬性來存儲數據,並使用this一個實例來分配你的文本字段的變化(或event.target

你沒有ID

你錯過最終報價爲您onclick功能

<select name="" onchange="myFunction(event)"> 
    <option disabled selected>Choose Database Type</option> 
    <option value="Green">green</option> 
    <option value="Red">red</option> 
    <option value="Orange">orange</option> 
    <option value="Black">black</option> 
</select> 

而且功能:

function myFunction(e) { 
    document.getElementById("myText").value = e.target.value 
} 

並添加ID

<input id="myText" type="text" value="colors"> 

小提琴:https://jsfiddle.net/gasjv4hs/

+0

像我上述,我很新的JavaScript。非常感謝解釋。它解決了它! –

+0

請嘗試在[CKEditor](http://ckeditor.com)上執行此操作,但它不起作用。你有一個想法,我怎麼能使它工作? –

+0

@DanielC。 - 對不起 - 我對CKEditor不是很熟悉 - 我猜它與腳本的放置有關 - 確保腳本在HTML之後加載。 – tymeJV

0

創建具有相同名稱的多次功能。

只有最後一個會工作。

您傳遞的變量g,r,o,b未定義。

請勿將onclick添加到option添加onchangeselect

利用HTML5data-*屬性

function myFunction(element) { 
 
    document.getElementById("myText").value = element; 
 
}
First Name: <input type="text" id="myText" value="colors"> 
 

 
<select name="" onchange="myFunction(this.value);"> 
 
    <option>Choose Database Type</option> 
 
    <option data-value="green">green</option> 
 
    <option data-value="red">red</option> 
 
    <option data-value="orange">orange</option> 
 
    <option data-value="black">black</option> 
 
</select>

+0

請我試着在[CKEditor](http://ckeditor.com)上實現它,但它不起作用。你有一個想法,我怎麼能使它工作? –

0

可以解決這種方式。

`名字:

<select name="" onchange="myFunction()" id="selectID"> 
    <option>Choose Database Type</option> 
    <option >green</option> 
    <option >red</option> 
    <option >orange</option> 
    <option >black</option> 
</select> 

<script> 
function myFunction() { 
    var selectItem = document.getElementByID('selectID').value; 
    document.getElementByID('yourId').value = sekectItem; 

} 
</script> 
0

這裏有一個方法來實現這一目標:

var select = document.getElementById('colorName'); 
 

 
function myFunction(event) { 
 
    var color = 'No color selected'; 
 

 
    if (select.selectedIndex > 0) { 
 
    color = select.item(select.selectedIndex).textContent; 
 
    } 
 
    
 
    document.getElementById('myText').value = color; 
 
} 
 

 
select.addEventListener('click', myFunction); 
 

 
myFunction();
First Name: <input type="text" id="myText"> 
 

 
<select id="colorName"> 
 
    <option>Choose Database Type</option> 
 
    <option>green</option> 
 
    <option>red</option> 
 
    <option>orange</option> 
 
    <option>black</option> 
 
</select>

+0

請嘗試在[CKEditor](http://ckeditor.com)上執行此操作,但它不起作用。你有一個想法,我怎麼能使它工作? –

0

您的代碼應該像下面。

<input type="text" name="color" id="color"> 
<select name="" id="change_color"> 
    <option>Choose Database Type</option> 
    <option >green</option> 
    <option >red</option> 
    <option >orange</option> 
    <option >black</option> 
</select> 
<script type="text/javascript" src="jquery.js"></script> 
<script> 
    $(document).ready(function() {  
    $('#change_color').change(function(){ 
    var color = ($(this).val()); 
    $('#color').val(color); 
    }) 
    }); 
</script> 
+0

請嘗試在[CKEditor](http://ckeditor.com)上實現此功能,但它不起作用。你有一個想法,我怎麼能使它工作? –