Как отключить отправку поведения asp: ImageButton?

У меня есть кнопка изображения на странице, которая может быть запущена при щелчке мыши, по умолчанию она запускается при нажатии на кнопку, которую я хочу отключить.

Я знаю об атрибуте «UseSubmitBehaviour» в asp: Button, есть ли способ сделать то же самое в asp: ImageButton?

    Я предполагаю, что у вас есть какие-то элементы управления вводами, и вы не хотите, чтобы вводить keypress автоматически отправляйте, когда пользовательская авария попадает в клавишу ввода. Если это так, вы можете прикрепить событие javascript onkeypress к каждому элементу управления, для которого вы хотите отключить это поведение.

    function disableEnterKey(e) { var key; if (window.event) key = window.event.keyCode; // Internet Explorer else key = e.which; return (key != 13); } // In your aspx file Page_Load do the following foreach control you want to disable // the enter key for: txtYourTextBox.Attributes.Add("OnKeyPress", "return disableEnterKey(event);"); 

    Если вам необходимо полностью отключить форму ввода Enter. case используйте обработчик OnKeyDown на на вашей странице.

    Код javascript:

     if (window.event.keyCode == 13) { event.returnValue = false; event.cancel = true; } 

    С JQuery это будет намного чище, проще и рекомендуется. Вы можете сделать расширение с помощью:

     jQuery.fn.DisableEnterKey = function() { return this.each(function() { $(this).keydown(function(e) { var key = e.charCode || e.keyCode || 0; // return false for the enter key return (key != 13); }) }) }; // You can then wire it up by just adding this code for each control:  

    Если вы разместите свой контент в asp: Panel, вы можете использовать свойство DefaultButton для установки другой кнопки по умолчанию, чтобы ваша кнопка изображения не была нажата.

         

    В этом примере btn_Test2 будет нажат , когда вы нажмете enter, где обычно будет нажата кнопка btn_Test1

    Форма выполнит первую кнопку, которую она найдет на странице, когда вы нажмете enter. Если вы можете переместить ImageButton дальше по странице, чтобы он больше не был первой кнопкой в ​​разметке, и используйте CSS для правильной позиции, это должно устранить вашу проблему. На прошлой неделе я исправил то же самое, и это сработало для меня. Я пошел с этим решением, потому что он не требовал корректной работы JavaScript.

    Используйте ответ Келси (этот ответ wiki’ed)

    … но обратите внимание на некоторые вещи, когда вы его реализуете.

    1. Я бы рекомендовал простой старый javascript-метод, если вы еще не используете jQuery. если вы сделаете этот метод, просто верните (keynum! = 13) не делайте что-то глупо, как if (true) return true; else возвращает false;

    2. Вам не нужно назначать onkeydown из кода позади. Это можно сделать в разметке, и когда вы делаете, это намного более чище.

    3. Не отключайте ключ ввода во всей форме. Вы можете сделать это только на своих входах, но если вы сделаете это в полной форме, вы не сможете добавить возврат каретки в текстовое поле.

    4. Если вы используете jQuery, я бы рекомендовал добавить class CSS под названием «disableEnterKey» и присвоить его вашим элементам формы, которые вы хотите отключить, а затем вызвать метод jQuery Kelsey на $ («. DisableEnterKey») в документе.

    5. Не отвечайте слишком похожим на кого-либо на SO, даже если вы не полностью согласны с ответом. И даже если ответ был прост, и тысячи людей, возможно, сделали это. Это «копирование». Который похож на «резак» или «рассказ о шлепке» … что плохо.

    (этот ответ был общедоступным wiki’ed, поскольку этот вопрос стал глупым)

    Вместо этого используйте asp: image. Затем поместите некоторый код javascript в onclick « javascript:document.getElementById('imageClicked').setAttribute('value', 'true'); document.myform.submit();

    Установите значение скрытого поля (используя javascript), чтобы указать код на стороне сервера, на который было нажато изображение.

     document.getElementById('imageClicked').setAttribute('value', 'true'); 

    Затем, по окончании обработки обратной передачи на сервере, сбросьте значение hiddenField:

     document.getElementById('imageClicked').setAttribute('value', 'true'); 

    вы хотите что-то вроде

     

    См. Следующую ссылку. Это можно решить для всех проблем с отправкой по умолчанию. http://weblog.kevinattard.com/2011/08/aspnet-disable-submit-form-on-enter-key.html

    Пожалуйста, используйте этот код

      
    Interesting Posts

    формат даты yyyy-MM-ddTHH: mm: ssZ

    Как просматривать, добавлять или редактировать файлы cookie в Google Chrome?

    Перетаскивание пользовательского объекта из JList в JLabel

    Как просыпаться от заставки непосредственно к экрану входа в Ubuntu

    java.lang.IllegalArgumentException: указанный основной набор ресурсов недействителен

    Отключение некоторых легенд в ggplot

    Предварительная буферизация для AVQueuePlayer

    Ошибка при контрастах при определении линейной модели в R

    Какая лучшая панель задач GNU, которую вы использовали / видели?

    Получить свойства classа с помощью Typcript

    Скрыть учетную запись с экрана входа, но можно использовать в UAC

    Должен ли я явно указывать возвращаемое значение malloc ()?

    Как использовать двухдиапазонную карту Wi-Fi для одновременного подключения к 5 ГГц и 2,4 ГГц в Windows?

    Как выполнить некоторую команду до или после каждой команды Bash, введенной с консоли?

    Используйте пользовательский разделитель тысяч в C #

    Давайте будем гением компьютера.