2015-12-02 108 views
0

我有多個文本框和選擇多個 這樣的JavaScript通價值

<input type="text" placeholder="1"><br> 
<input type="text" placeholder="2"><br> 
<input type="text" placeholder="3"><br> 
<input type="text" placeholder="4"><br> 

<select multiple="multiple"> 
    <option>One</option> 
    <option>Two</option> 
    <option>Three</option> 
    <option>Four</option> 
</select> 

讓剛剛說我點擊文本框1,然後我點擊選擇多個「一」

和值「一」,將傳遞到文本字段1,因爲我之前點擊文本字段1 ..

,如果代替我點擊文本字段2,則「一」將傳遞到文本框2

+0

你做任何JavaScript了嗎? – pistou

回答

0

好吧,我可以看到一些jQuery在這裏回答,雖然問了JS。
這裏是JS之一:

var activeInput = false; 
window.onload = function(event) { 
    allInputs = document.getElementsByTagName('input'); 

    for (i = 0; i < allInputs.length; i++) 
    { 
    allInputs[i].addEventListener('focus', function(){activeInput = this;}); 
    } 

    allOptions = document.getElementsByTagName('option'); 

    for (i = 0; i < allOptions.length; i++) 
    { 
    allOptions[i].addEventListener('click', function(){ if (activeInput){activeInput.value = this.text;}}); 
    } 
}(); 
+0

不錯,我喜歡Javascript。然而,爲像我這樣一個懶惰的人寫些東西太多了。 –

+0

感謝您的答案先生,儘管我會使用@DaanHeskes jQuery的一個,但我將這標記爲答案,因爲我問的是一個JavaScript而不是jQuery :) –

0

我希望你意識到你在問一個錯誤的問題,因爲你沒有提供任何嘗試。不過,我心情很好,偶然發現這對我自己來說是一個有趣的練習。

你的jQuery(無香草的JavaScript)是:

$(document).ready(function() { 
    var lastinput = null; 
    $("input").click(function() { 
    lastinput = $(this); 
    }); 
    $("option").click(function() { 
    if (lastinput != null) { 
     lastinput.val($(this).text()); 
    } 
    }); 
}); 

如圖中JSFiddle demo

+0

是的,我很抱歉,這只是我真的很糟糕的JavaScript,所以我甚至不知道從哪裏開始嘗試.. 順便說一句,你的答案是確切的作品,就像我的計劃,非常感謝你先生: ) –

-1

你使用jQuery假設?如果不是,它變得更加困難,但仍然是非常可能的。

// we have a variable to track which textbox we clicked on most recently 
var focused = null; 
$('input').focus(function(){ 
    focused = this; 
}); 

// when an option is clicked, we set the recently clicked textbox's value 
$('option').click(function(){ 
    if(focused){ 
     $(focused).val($(this).text()); 
    } 
}); 

瞭解更多關於jQuery的FocusClick功能。

+0

你的答案與我的沒有什麼不同,除了你使用'focus'(而不是'click'函數)。 –

+0

我發佈時沒有看到任何答案。偉大的思想家必須同樣思考。 – isick