我有这个简单的HTML代码......
<div onclick='jsComment();'>Click to comment</div>
jsComment()
函数只创建一个带有textarea和一个按钮的表单,并替换div的HTML内容
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是正确生成的,但我无法在textarea中编写。当我将光标放在textarea中时它就会消失......对于提交按钮,它似乎被禁用了...这里出了什么问题?也许是一个CSS问题?
非常感谢
答案 0 :(得分:3)
我认为问题出在这里
jQuery('#noticia_'+id).html(form);
你应该使用
jQuery('#noticia_'+id).replaceWith(form);
我在这里创建了一个简化的小提琴http://jsfiddle.net/dzytP/
一般来说,您应该将元素附加到DOM,而不是更改html,以便在动态添加时使<FORM>
之类的内容有效
答案 1 :(得分:1)
<强>更新强>
使用.replaceWith()代替,请参阅jsfiddle进行比较。
我尝试了多种方法来解决这个问题,我能想出的最好的方法是定期编写(不动态)并将其显示在onclick上。
请参阅小提琴:http://jsfiddle.net/c4urself/tFxDs/了解我尝试的所有选项
$("commentcontainer").click(function() {
$(this).html("").next(".textareacontainer").show();
});
答案 2 :(得分:0)