Иногда нам может потребоваться запретить браузеру какие-либо действия по умолчанию. Например, если вы кликаете по какой-либо ссылке, то браузер попробует перейти по ссылке указанной в атрибуте href
. В Blazor мы можем запретить такое действие по умолчанию и переопределить поведение.
@on{EVENT}:preventDefault
Если нам необходимо запретить действие по умолчанию для какого-либо элемента, то мы можем использовать конструкцию вида:
@on{EVENT}:preventDefault [= True/False]
где EVENT — это событие DOM, которое мы хотим запретить. Если конструкция не содержит значение bool
после знака =
, то такая запись эквивалентна следующей:
@on{EVENT}:preventDefault = True
Например, в прошлой части мы определяли EventCallback
для компонента SurveyPrompt
. Несмотря на то, что клик по ссылке приводил к ожидаемому результату — выводу строки, браузер все равно переходил по ссылке. Чтобы этого не происходило, мы могли бы запретить такое поведение браузера следующим образом:
<a target="_blank" ..... @onclick:preventDefault="true">brief survey</a>
Соответственно, после запрета действия по умолчанию, мы можем определить новое поведение, назначив этому событию свой обработчик:
<a ..... @onclick:preventDefault="true" @onclick="OnClick">brief survey</a> @code { // Demonstrates how a parent component can supply parameters public void OnClick() { здесь определяем новые действия }