2016-09-19 88 views
-1

爲什麼我的值不會進入我的文本框。我可以硬編碼我的文本,但不是當我的列表項功能是點擊時調用的值。消息不會進入文本框

如何通過onclick方法傳遞值?

CSS

.show { 
    width: 300px; 
    height: 200px; 
    background-color: red; 
    padding: 10px; 
    display: none; 
    float: left; 
} 

HTML

<form> 
    <p><input type="text" name="T1" size="45" id="t" onfocus="show();" onblur="hide()"></p> 
</form> 

<div class="show" id="s"> 
    <ul> 
     <li><a href="#" id="o1" onclick="c1('ss');">List 1</a></li> 
     <li>List 1</li> 
     <li>List 1</li> 
     <li>List 1</li> 
    </ul> 
</div> 

JS

function c1(vl) { 
    var msg = v1; 
    document.getElementById("t").value = "ddd" + msg; 
    document.getElementById("s").style.display = "none"; 
} 

function show() { 
    document.getElementById("s").style.display = "block"; 
} 

function hide() { 
    document.getElementById("s").style.display = "none"; 
} 
+0

兩個錯誤:它是'vl',不'v1'(你不需要變量'msg',只需用'vl')之前,你可以點擊鏈接' onblur'事件發生並隱藏列表,在點擊事件可以被觸發之前。 – Xufox

+0

那麼我該如何隱藏我失去焦點的div? – kiwis

+0

使用jquery,讓你的整個代碼更容易編寫和理解。代替使用jquery編寫3個函數,你可以編寫一個函數,並用div ids調用jquery的hide()&show()方法。可以使用.val()方法輕鬆調用文本框中的值。 – Technologeek

回答

0

有在你的js代碼的一個小錯誤您有vl作爲參數,並分配值pf v1。 它應該是:

function c1(vl) { 
    var msg = vl; 
    document.getElementById("t").value = "ddd" + msg; 
    document.getElementById("s").style.display = "none"; 
}