jQuery-清除克隆的表单值
在下面的代码中,当我尝试将val()设置为空字符串:val(“”)时,代码中断,表单不会追加。但实际上,当表单被追加时,表单的输入值被克隆,这是我不想要的,并且一直试图用val(“”)来删除,但没有用。我试图寻找类似的问题,但我不认为它们代表了我的情况 Html: 编辑: 为清晰起见,添加链接。我一直遵循这个例子,但我遇到了我在这里试图解决的问题你知道函数吗 这个怎么样:jQuery-清除克隆的表单值,jquery,Jquery,在下面的代码中,当我尝试将val()设置为空字符串:val(“”)时,代码中断,表单不会追加。但实际上,当表单被追加时,表单的输入值被克隆,这是我不想要的,并且一直试图用val(“”)来删除,但没有用。我试图寻找类似的问题,但我不认为它们代表了我的情况 Html: 编辑: 为清晰起见,添加链接。我一直遵循这个例子,但我遇到了我在这里试图解决的问题你知道函数吗 这个怎么样: $(document).ready(function(){ $("#commenters").on("click",
$(document).ready(function(){
$("#commenters").on("click", ".reply", function(event){
event.preventDefault();
var $form = $("#postcomment");
$form[0].reset();
$form.find('.parent').val($(this).parent().parent().attr('user_id'));
$(this).parent().append($form.clone());
});
});
$(document).ready(function () {
$("#commenters").on("click", ".reply", function (event) {
event.preventDefault();
// in case you want to clear the original form as well
$("form#postcomment")[0].reset();
var form = $("#postcomment").clone();
form[0].reset();
form.find('.parent').val($(this).parent().parent().attr('user_id'));
$(this).parent().append(form);
});
});
根据评论进行更新
$(function() {
$("body").on("click submit", "input[type='submit']", function(ev) {
ev.preventDefault();
var $el = $(this).parent().find("input[type='text']");
var comment = $el.val();
var temp = '<li id="user_id"><p class="poster"></p>'+comment+'<br><a href="" class="reply">reply</a></li>';
if($($(this).parent()[0]).hasClass('replyform')) {
$(this).parent().parent().append(temp);
} else {
$("ul#commenters").append(temp);
}
$el.val("");
$("ul#commenters .reply").show();
$("ul#commenters form").hide();
});
$("#commenters").on("click", ".reply", function (event) {
event.preventDefault();
// in case you want to clear the original form as well
$(this).hide();
$("form#postcomment")[0].reset();
var form = $("#postcomment").clone();
$(form[0]).addClass("replyform");
form[0].reset();
form.find('.parent').val($(this).parent().parent().attr('user_id'));
$(this).parent().append(form);
});
});
$(函数(){
$(“正文”)。在(“单击提交”,“输入[type='submit']”上,函数(ev){
ev.preventDefault();
var$el=$(this.parent().find(“输入[type='text']”);
var comment=$el.val();
var temp=''+comment+'
';
if($($(this.parent()[0]).hasClass('replyform')){
$(this.parent().parent().append(temp);
}否则{
$(“ul注释者”)。附加(临时);
}
$el.val(“”);
$(“ul#commenters.reply”).show();
$(“ul注释者表单”).hide();
});
$(“#评论者”)。在(“单击”,“回复”,函数(事件){
event.preventDefault();
//如果您还想清除原始表单
$(this.hide();
$(“form#postcomment”)[0]。重置();
var form=$(“#postcomment”).clone();
$(表格[0]).addClass(“replyform”);
表单[0]。重置();
form.find('.parent').val($(this.parent().parent().attr('user_id'));
$(this.parent().append(form);
});
});
HTML:
<form id="postcomment" method="post" action="">
<input type="text" name="formva">
<input type="submit" value="Post" />
</form>
<ul id="commenters">
</ul>
form.find('.parent')将返回null。您的表单中是否有类为的元素?@codehx我刚刚仔细检查了一下,我发现表单中没有类为父的元素。这就是为什么
form.find('.parent').val($(this.parent().parent().attr('user_id'))代码>fails@codehx问题是,当我删除.parent()和two parent()时,表单根本就不会附加任何内容,您必须提供一个完整的示例,说明您正在查找的内容仍然不起作用。我想这就是我开始拉扯头发的地方out@Antony对不起。处理程序有点小错误。我编辑我的答案。检查这个谢谢你的努力,但它仍然不起作用。jsbin演示也给了我一个禁止的错误(403)。在这一点上,老实说,我不知道该怎么想。我真的需要这个功能,不想使用disqs,因为我觉得很难看,你需要点击回复按钮。希望您单击了“发布”按钮事件绑定到代码中的“回复”按钮链接显示了我试图完成的内容,但遵循该教程会导致我试图在此处解决的问题。根据评论更新:)
$(document).ready(function () {
$("#commenters").on("click", ".reply", function (event) {
event.preventDefault();
// in case you want to clear the original form as well
$("form#postcomment")[0].reset();
var form = $("#postcomment").clone();
form[0].reset();
form.find('.parent').val($(this).parent().parent().attr('user_id'));
$(this).parent().append(form);
});
});
<form id="postcomment" method="post" action="">
<input type="text" name="formva">
<input type="submit" value="Post" />
</form>
<ul id="commenters">
</ul>