2009-09-24 23 views
20

У меня есть приложение ASP.NET, в котором есть несколько кнопок ASP.NET и несколько простых кнопок HTML. Каждый раз, когда появляется текстовое поле, в которое попадает пользователь, кнопка ASP.NET пытается отправить форму.Отмена кнопки отправки по умолчанию в ASP.NET

Я знаю, что могу изменить defaultButton, но я не хочу, чтобы была кнопка по умолчанию. Я просто хочу, чтобы это, когда пользователь нажимает кнопку ввода, ничего не делает.

Я пробовал установить defaultButton на пустой, но это, похоже, не работает. Как запретить отправку формы кнопкой ASP.NET при нажатии клавиши ввода?

ответ

33

Вы можете установить кнопки UseSubmitBehavior = ложь

btnCategory.UseSubmitBehavior = false; 
+0

Это действительно создает требуемое поведение: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx –

+0

@RyanSmith иногда бывает трудно найти недостатки , например, «не имеет кнопки отправки» из-за количества способов, с помощью которых отрицательный может быть сформулирован. –

+2

Дополнительное примечание: ImageButton от ASP.Net не имеет атрибута UseSubmitBehavior. Если вы используете один из них, см. Решение «скрытая фиктивная кнопка» ниже. также см .: [Этот вопрос] (http://stackoverflow.com/questions/1561400/how-to-disable-submit-behaviour-of-aspimagebutton) – CodePartizan

23

Вот что я использовал, чтобы исправить эту проблему.

<form runat="server" defaultbutton="DoNothing"> 
     <asp:Button ID="DoNothing" runat="server" Enabled="false" style="display: none;" /> 
+1

Хороший взлом! У меня на моей главной странице была кнопка asp.net imagebutton, которая сохранялась при каждом нажатии кнопки ввода на любой странице. Однако этот маленький трюк устранил проблему. – Jagd

+0

Я пробовал буквально все, но по какой-либо причине (ошибка) или что-то еще, ImageButtons по-прежнему запускались как DefaultButtons, даже если вы не устанавливаете их как таковые. Я пробовал все вышеперечисленные попытки, это единственное, что сработало. Насколько я ненавижу использование манекена asp: Button, он отлично работал ... – emalamisura

+0

Не нравится использовать такие хаки, но это самое быстрое решение, когда у вас есть кнопки ImageButtons. –

0
<asp:TextBox ID="TXT_Quality" runat="server" Width="257px" 
onkeypress="return key_Pressed(event, this);"> 
</asp:TextBox> 

function key_Pressed(e, textarea) 
{ 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if(code == 13) 
    { 
     return false; 
    } 
    return true; 
} 
1

Я также имел эту проблему с ImageButton на моем MasterPage (кнопка Выход) задается как кнопка по умолчанию (так всякий раз, когда кто-то нажал Enter, он будет войти их). Я решил его, используя следующую строку в случае Page_Load на каждом ребенок странице, которая является немного работы вокруг, но это работает:

Form.DefaultButton = cmdSubmit.UniqueID; 

Надеется, что это помогает кто-то другое.

Смежные вопросы