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>

Jquery:

$(".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

ラインを交換してください

$(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 に答える
0

uもこれをチェックします

jsFiddle

うまくいけば、その有用

于 2012-06-22T09:21:26.177 に答える