0

当使用单击删除时,我正在尝试将文本添加到下面 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>

查询:

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

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

4

4 回答 4

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/

于 2012-06-22T09:13:22.947 回答
0

你也会检查这个

jsFiddle

希望它有用

于 2012-06-22T09:21:26.177 回答
0

更换你的线路

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

有了这个

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

于 2012-06-22T09:16:30.097 回答
0

即使这样也应该有效:

 $(this).parent().find(".documentDelete").find('input').val("True");
于 2012-06-22T09:17:37.417 回答