2011-08-22 107 views
2

第一次海报和我的JavaScript技能需要工作使当点击一个链接

我想要当有人点击一个链接的文本字段显示文本字段出现。我研究过这个结果,但似乎没有任何工作。这是我到目前为止:

<span id="location_field_index"> 
    <a href="javascript:void(0)" onclick="innerHTML=\"<input type=\"text\" name=\"update_location\" value=\"<? echo $location_string; ?>\"" > 
    <?php echo $location_string; ?> 
    </a> 
</span> 

我意识到这可能是迄今为止错误,但任何帮助将很好。

+0

老兄...拜托,请学习更好的代码标准:(查看JavaScript wiki获取更多信息。 – Incognito

回答

1

你似乎是混合PHP和JavaScript的。对于纯粹的JavaScript解决方案,您需要创建一个函数,然后在内部使用Document.getElementById('location_field_index')获取位置元素。然后你想设置innerhtml属性。下面应该这样做

function addBlock() { 
     var elem = Document.getElementById('location_field_index'); 
     elem.innerhtml = "HTML HERE"; 
     return false; 
    } 

然后将链接添加里面<a onclick="addBlock()">Click ME<a>

4

您应该将该字段放在窗体上,并将其隐藏在一个div中,直到您需要为止。

<a href="..." onclick="document.getElementById('inputField').style.display = 'block';">Click me</a> 

<div id="inputField" style="display:none;"> 
    <input type="text" id="textInput" value="..." /> 
</div> 
0

我返回false,以防止重定向browserL

<a href="#" onclick="linkClicked(event)">Link</a> 
<input type="text" style="display:none;" id="txt" /> 

.... 

function linkClicked(event) { 
    event.preventDefault(); 
    document.getElementById('txt').style.display = "block"; 
    return false; 
} 
链接
2

我建议从元素本身删除点击处理程序,并将其移动到外部函数。以下作品:

var a = document.getElementsByTagName('a'); 
var t = document.createElement('input'); 
t.type = 'text'; 

for (i = 0; i < a.length; i++) { 
    a[i].onclick = function() { 
     this.parentNode.appendChild(t); 
     return false; 
    }; 
} 

JS Fiddle demo