2009-09-24 3 views
1

У меня есть кнопка HTML, которая визуализируется в виде HTML, как например:Подавить событие щелчка с помощью JQuery

<input type="button" value="Select" onclick="javascript:__doPostBack('ctl00$ContentPlaceHolder1$gvAttendants','Select$0')" /> 

Я пытаюсь использовать JQuery, чтобы подавить событие щелчка выше входного тега, но я могу Не поймите, как это сделать! Кнопка по-прежнему выполняет обратную передачу, и я не хочу этого делать.

Вот мой JQuery код:

$("input[type='button'][value='Select']").click(function($e) { 
      $e.preventDefault(); 
     }); 

Любые предложения?

ответ

6

Вы не можете удалить обработчик onclick. Все, что вы делаете, добавляет еще один обработчик кликов. Попробуйте это:

$("input[type='button'][value='Select']").removeAttr('onclick'); 

Также убедитесь, что ваш код обернут вокруг document.ready

+0

работает как шарм! Благодаря! – Jagd

2

Попробуйте добавить return false в ваш обработчик click.

1

Моя догадка кнопка визуализируется с помощью элемента управления ASP.NET. В этом случае я удалю атрибут onClick. Это может еще вызывать постбэк:

$("input[type='button'][value='Select']").removeAttr("onclick"); 

В качестве альтернативы, вы можете отключить кнопку:

$("input[type='button'][value='Select']").attr("disabled","disabled"); 
+0

Благодарим вас за предложение добавить атрибут «disabled». Я тоже это сделаю. – Jagd

+0

О, и вы совершенно правы, элемент управления визуализируется с помощью GridView CommandField. – Jagd

2

Я думаю, вы могли бы также сделать UNBIND метод:

$("input[type='button'][value='Select']").unbind("click"); 

//to check 
$("input[type='button'][value='Select']").bind("click", function(){alert("it runs only");}); 
Смежные вопросы