Jquery - 如何在上面的div中的文本框中添加文本?

时间:2012-06-22 09:10:35

标签: jquery

我正在尝试在用户点击删除...

时将文字添加到下方div中的隐藏文本框中

HTML

<div class="documentRow">    
<div class="documentHeader">
    <b>Title:</b> 
     <input data-val="true" data-val-required="Required" id="EventDocuments_1__Title" name="EventDocuments[1].Title" style="width:100px" type="text" value="test.doc">   
</div>
<div class="documentDelete">
    <input data-val="true" data-val-required="The Delete field is required." id="EventDocuments_1__Delete" name="EventDocuments[1].Delete" type="hidden" value="False">
</div>
<div class="deleteDoc">
     <button class="button delDocButton ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" aria-disabled="false"><span class="ui-button-text">Delete</span></button>
</div>

Jquery的:

$(".delDocButton").click(function() {
        $(this).parent().parent().toggle();
        $(this).parent().find(".documentDelete input").val("True");  
        return false;
    });

我在页面上有几个“行”,所以我不能通过id引用文本框。

4 个答案:

答案 0 :(得分:3)

问题在于这一行:

$(this).parent().find(".documentDelete input").val("True");  

$(this).parent()是按钮的直接父级(<div class="deleteDoc">),您的隐藏字段不在其中,因此它不会find

为了省去不得不重复拨打parent()的电话,我建议不要这样做:

$(".delDocButton").click(function() {
    var $container = $(this).parent().parent();
    $container.toggle();  
    $(".documentDelete input",$container).val("True");  
    return false;
});

实例:http://jsfiddle.net/SqHzU/

答案 1 :(得分:0)

替换你的行

$(this).parent().find(".documentDelete input").val("True");

有了这个

$(this).parent().siblings(".documentDelete").find("input").val("True");

答案 2 :(得分:0)

即使这应该有效:

 $(this).parent().find(".documentDelete").find('input').val("True");

答案 3 :(得分:0)

你也会检查这个

jsFiddle

希望它有用