2011-08-22 162 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