2016-09-19 52 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"; 
}