0

Divタグのすべての要素を無効にしようとしています。入力タイプで成功しました。ただし、リンクを無効にすることはできません。私もこれを試しましたが、動作していません。これが私が試したコードです(しかしそれは入力に対してのみ機能します):

 $('#EditorRows *').attr('disabled', true);

入力タイプを無効にすることは知っていますが、リンクに対してそのタイプのメカニズムを実現したいと思います。

最初のPartialViewコード:

<div id="Part2">
<div id="EditorRows">
<%= Html.ActionLink("Add another...", "Add", null, new { id = "addItem" }) %>
<%Html.RenderPartial("_InsertServices", Model);%>
</div>
<div id="DontAppend">
<input type="button" id="btnEdit" value="Edit" hidden="hidden"/>
<input type="button" id="btnDone" value="Done" />
</div>
</div>

2番目のPartialView

<div class="EditorRow">
<% using (Html.BeginCollectionItem("services"))
{ %>
<table id="table1">
<tr><td>
NOS:</td><td>
<%:Html.DropDownListFor(model=>model.Id,(SelectList)ViewData["crmServiceType"] as SelectList,"---")%>
</td>
<td>
Comment:</td><td>
<%=Html.TextBoxFor(model => model.Comment, new { size = "20" })%></td>
<td>
<a href="#" class="deleteRow">delete</a>
</td>
</tr>
</table>
<% } %>
</div>

脚本:

    $("#addItem").click(function () {
            $.ajax({
                url: this.href,
                cache: false,
                success: function (html) { $("#EditorRows").append(html); }
            });
            return false;
        });

        $("a.deleteRow").live("click", function () {
            $(this).parents("div.EditorRow:first").remove();
            return false;
        });

$('#btnDone').click(function () {
      $('#EditorRows *').attr('disabled', true);
    }
    $('#btnEdit').click(function () {
      $('#EditorRows *').attr('disabled', false);
    }
4

6 に答える 6

3

リンクを無効にするには、これを使用します

$('div a').unbind('click');

あなたの場合の鉱石:

$('#btnDone').click(function () {
    var $rows = $('#EditorRows');
    $rows.find('input, select, textarea').attr('disabled', true);
    $rows.find('a').unbind('click');
}
于 2013-03-06T12:57:19.943 に答える
2

これを試して

$('#EditorRows').find('a').each(function(){
   $(this).replaceWith($(this).text());
});

アップデート

無効にするには:

$('#EditorRows').find('a').bind('click', false);

有効にする :

$('#EditorRows').find('a').unbind('click', false);
于 2013-03-06T13:17:43.643 に答える
0
$('div').find(':input').prop('disabled',true);//this line will this able all inputs including buttons.
$('div').find('a').each(function(){
   $(this).removeAttr('href');
   $(this).unbind('click');
});//this will take care of the links

これで問題は解決すると思います

于 2013-03-06T13:00:44.547 に答える
0

jqueryのoffメソッドを使用します。

$('#Yourdiv a').off('click');

$('#yourDiv').find('input').attr('disabled',true);

または、アンカーがクリックされたときに単純にfalseを返すだけです。

$('#Yourdiv a').on('click',function(e)
                  {
                   return false;  // or e.preventDefault();
                  });
于 2013-03-06T13:00:45.120 に答える
0

頭に浮かんだ最初の解決策ですが、エレガントなふりをしていません http://jsbin.com/icijox/4/edit

于 2013-03-06T13:56:41.857 に答える
0

属性があるため、入力に対してのみ機能しdisableます。リンクを無効にするには

リンクリダイレクトを削除したいだけの場合。

$("#youdivname").find('a').removeAttr('href') 

これにより、再びアクティブになります:

$("#yourdivname").find('a').attr('href','link')

linkリダイレクトはどこにありますか。

于 2013-03-06T13:06:00.270 に答える