Остановить onclick при стрельбе, когда onclientclick является ложным?

Можно ли использовать свойство onclientclick кнопки для проверки клиента. Если проверка вернет true , запустите событие onclick . Если проверка clientside возвращает false , не onclick событие onclick .

Это возможно?

ОБНОВИТЬ:

Эти 2 работы:

 Stops the form from submitting: OnClientClick="return false;" 

 Allows the form to submit: OnClientClick="return true;" 

Следующие 2 не работают:

 // in js script tag function mycheck() { return false; } // in asp:button tag OnClientClick="return mycheck();" 

 // in js script tag function mycheck() { return true; } // in asp:button tag OnClientClick="return mycheck();" 

Он представляет форму оба раза.

Почему это?

Вы хотите добавить return внутри OnClientClick после вызова функции. В противном случае кнопка будет отсылаться обратно, даже если функция возвращает false.

   

Конечно. Если вы используете return false в своем OnClientClick это предотвратит любую навигацию. Таким образом, вы будете выглядеть так:

  

Да, вы можете, В вызове функции preventDefault() использовать preventDefault()

 function onclientClickFun(e) { if(!IsValidationSuccess) { e.preventDefault(); } } 

ИЛИ

 function onclientClickFun(e) { if(!IsValidationSuccess) { return false; } } 

На странице сервера создайте кнопку :

 var button1 = new Button(); button1.ServerClick += new EventHandler(button1_ServerClick); button1.OnClientClick = SetJsForSaveBtn(); button1.Attributes.Add("UseSubmitBehavior", "false"); panel.Controls.Add(button1 ); 

// Содержит код сервера

 private void saveBtn_ServerClick(object sender, EventArgs e) { //do something if ClientClick returns true } 

// Содержит код JS для страницы

 LiteralControl js = new LiteralControl(); panel.Controls.Add(js); js.Text =@" "; private string SetJsForSaveBtn() { var jsfunc = @" return CheckValidationOnClient()"; return jsfunc ; } 

Я тоже столкнулся с этой проблемой. Не хотелось бы, чтобы OnClientClick = return false на каждой ссылке. С простой страницей просто проще использовать якорь и избегать asp заполнения href внутри для вас.

Однако, это не всегда возможно. Таким образом, простой вывод заключается только в том, чтобы наследовать LinkButton и добавить переменную типа AutoPostBack. если false, то просто переопределите вывод с помощью html или добавьте OnClientClick. Мне не нравятся встроенные tags.

 namespace My.WebControls { [ToolboxData("<{0}:LinkButton runat=server ID=btn>"), ParseChildren(true), ToolboxItem(true)] public class LinkButton : System.Web.UI.WebControls.LinkButton { private bool _postback = true; [Bindable(true), Category("Behavior"), DefaultValue(true), Description("Gets or Sets the postback click behavior")] public bool AutoPostBack { get { return _postback; } set { _postback = value; } } protected override void Render(System.Web.UI.HtmlTextWriter writer) { if(!AutoPostBack){ this.OnClientClick = "return false"; } base.Render(writer); } } } 

Многие атрибуты должны обрабатываться в ViewState, но в этом случае я думаю, что мы хороши;

  • Поиск всех пространств имен в сборке с использованием Reflection (DotNET)
  • Есть ли эквивалент VB.NET для C # ''? ' оператор?
  • Как перетасовать и раздавать карты по одному игроку?
  • Маркировка classа Static в VB.NET
  • Разделите строку на значение Enum в VB.NET
  • Что быстрее? ByVal или ByRef?
  • У XSLT есть функция Split ()?
  • Могу ли я разместить Windows Form внутри элемента управления
  • VB.NET - IIF (,,) - оцениваются обе «стороны». В каких ситуациях я должен следить?
  • Безопасно хранить имена пользователей и пароли в базе данных?
  • Выберите уникальные случайные числа
  • Давайте будем гением компьютера.