无法在chrome中禁用jquery内的图像按钮

时间:2012-08-30 10:55:37

标签: jquery telerik

无法在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中的按钮。

2 个答案:

答案 0 :(得分: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...
});

答案 1 :(得分:0)

VDP的答案很棒!我使用了以下内容,它就像一个魅力。

if ($('#' + controlid + '_Image1').attr('disabled') == 'disabled') return;