0

无法在 chrome 中禁用 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);,但不能在 chrome 中工作。

只有$(image).removeAttr("onclick");在 Chrome 和 IE 中工作。

但在那之后无法onclick再次绑定。

请给出一些建议,如何在 chrome 中禁用 jquery 中的按钮。

4

2 回答 2

1

您不能禁用图像。仅适用于内置(标准化)的输入字段。

onclick=testGrid.OnAddTierClick(this);也不是附加 onClick 处理程序的首选方式。这是古老而懒惰的方式。jquery 方式更好/更易于维护,并且逻辑与视图(html)松散耦合。

禁用检查不是内置的,因此请自行检查。这是一个例子。

前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 回答