2011-12-20 32 views
3

我有這個簡單的HTML代碼...通過jQuery創建Textarea - 但不可編輯,爲什麼?

<div onclick='jsComment();'>Click to comment</div> 

而且jsComment()功能只是一個文本區域和一個按鈕,並創建一個表單代替正確生成

function jsComment(id){ 

var form = '<form action="modules.php?name=some_url&id='+id+'" method="post" name="post">'; 
form += '<b>Post something!</b><br />'; 
form += '<textarea name="noticia" cols="100" rows="5" maxlength="299" style="overflow: hidden; border: none; border-top: 1px solid LightGrey; margin: 6px;"></textarea><br />'; 
form += '<input type="hidden" name="noticiaId" value="'+id+'" /><input type="submit" name="op" value="Comment!"></form>'; 
jQuery('#noticia_'+id).html(form); 

} 

HTML的div HTML內容,但我不能寫在textarea。當我把光標放在textarea裏面時,它就會消失......提交按鈕是一樣的,它似乎被禁用......這裏出了什麼問題?也許是一個CSS問題?

非常感謝您

+4

這可能會幫助,如果你發佈代碼的其餘部分,這就是問題的地方。 – Deleteman 2011-12-20 12:34:42

+1

請包含'jsComment'的源代碼。如果你可以包含一個[jsfiddle](http://jsfiddle.net/)來複制錯誤,那也不錯。 – 2011-12-20 12:35:16

+0

你可以包含創建html的代碼嗎?這對我們發現問題會有幫助。 – 2011-12-20 12:39:10

回答

1

更新

使用.replaceWith()來代替,看到的jsfiddle進行比較。

我嘗試了多種方法來解決這個問題,我可以提出的最好方法是定期(不動態)編寫並顯示onclick。

見小提琴:http://jsfiddle.net/c4urself/tFxDs/所有的選項我試過

$("commentcontainer").click(function() { 
    $(this).html("").next(".textareacontainer").show(); 
}); 
+0

我認爲他的問題在於他使用'html()'將表單添加到DOM的事實。如果你使用'append()'或'prepend()',一切正常(或者'replaceWith()'按我的建議) – 2011-12-20 13:22:40

+0

@Nicola你完全正確,現在的問題是,爲什麼它不起作用。 HTML()? – c4urself 2011-12-20 13:28:44

+0

謝謝! replaceWith()工作正常!我不知道那個函數,我一直使用html()之前 – 2011-12-20 23:34:16

3

我覺得現在的問題是在這裏

jQuery('#noticia_'+id).html(form); 

你應該使用

jQuery('#noticia_'+id).replaceWith(form); 

我創建了一個簡單的這裏撥動http://jsfiddle.net/dzytP/

一般來說,你應該追加元素到DOM,而不是動態添加時

+0

謝謝! replaceWith()工作正常!我不知道那個函數,我以前一直使用html() – 2011-12-20 23:34:00

0

EHM ..試圖複製您的問題更改HTML有類似的事情工作<FORM> ....但不能看..在這個小提琴。這是我會這樣做的方式..當然,你仍然可以包含你的ID .. http://jsfiddle.net/pixelass/CpmvV/

相關問題