0

クロムのjquery内の画像ボタンを無効にできません

サイド cshtml ページ コード:

@(Html.Telerik().Grid<object>().Name("testGrid").Columns(columns =>{
columns.Bound(item).ClientTemplate("<input type='text' width='20px' onchange=testGrid.OnPriceLockChange(this)' class='price' /><img src='" + @Url.Content("~/images/Tier/PlusT.png") + "' width='16' height='16' border='0' alt='Add Tier' title='Add Tier' onclick=testGrid.OnAddTierClick(this);' />").Title("Lock").Width(120);

Jqueryの内部 -

$.each(rows, function (index, row) {
var images = row.find("img");
$.each(images, function (index, image) {
  $(image).attr("disabled", "disabled");
     });
}

このコードは IE では動作しますが、Chrome では動作しません。

私も試し$(image).attr("disabled", true);ましたが、クロムでは動作しません。

$(image).removeAttr("onclick");IEだけでなくChromeでも動作しています。

しかし、その後、onclick再びバインドすることはできません。

クロムのjquery内のボタンを無効にする方法について提案してください。

4

2 に答える 2

1

画像を無効にすることはできません。組み込みの(標準化された)入力フィールドの場合のみ。

また、onclick=testGrid.OnAddTierClick(this);onClickハンドラーをアタッチするための推奨される方法ではありません。それは古くて怠惰な方法です。jqueryの方法は、保守がより適切で簡単であり、ロジックはビュー(html)から緩く結合されています。

無効化チェックは組み込まれていないため、自分でチェックしてください。これが例です。

ex html:

<img src="http://placehold.it/16x16" alt="Add Tier" title="Add Tier" class="addTierButton"/>

javascript:

$('.addTierButton').click(function(){
    if($(this).attr('disabled') !== true){
        //onAddTierClick logic here...
    }
});

またはさらに短い:

$('.addTierButton[disabled!="true"]').click(function(){
        //onAddTierClick logic here...
});

行を追加し、使用するバインディングを維持する場合.on()

$(_selector_for_parent_container_).on('click','.addTierButton[disabled!="true"]', function(){
        //onAddTierClick logic here...
});
于 2012-08-30T11:13:59.957 に答える
0

VDPの答えは素晴らしいです!以下を使用しましたが、これは魅力的でした。

if ($('#' + controlid + '_Image1').attr('disabled') == 'disabled') return;
于 2014-08-06T15:48:48.547 に答える