запретить обратную отправку HtmlButton в C#

#c# #javascript #asp.net

#c# #javascript #asp.net

Вопрос:

Я создаю HtmlButton динамически в файле .cs. Добавление его на панель с помощью

 HtmlButton b1 = new HtmlButton();
b1.Attribute.Add("onclick","javascript:validateNclick(this.id);");
pnl.Controls.Add(b1); //pnl is Server-side <Asp:Panel>
  

Теперь, как я мог бы предотвратить его обратную отправку? Я написал javascript, который работает в IE (без обратной отправки), но не в Mozilla Firefox (перейдите непосредственно к коду на стороне сервера).
пожалуйста, помогите.

Комментарии:

1. пожалуйста, предоставьте код на c #, т.е. b1.Attribute.Add(… который будет работать конкретно в Firefox

Ответ №1:

верните false, чтобы предотвратить обратную отправку:

 b1.Attribute.Add("onclick","javascript:validateNclick(this.id);return false;");
  

Обновить:
Вы также можете сделать это:

 b1.Attribute.Add("onclick","javascript:return validateNclick(this.id);");  
  

Затем в вашей validateNclick функции, если вы хотите иметь обратную отправку, верните true , если нет, верните false .

Комментарии:

1. но после проверки я мог бы вернуться из Javascript в зависимости от условия (if ..else)

2. у меня был отладчик в функции Javascript. Когда я отлаживаю с Firefox, он не переходит на javascript, а просто переходит на .cs-код. Когда я напишу ‘return false;’, он не будет отправлен на серверную часть при ll

Ответ №2:

если вы используете jQuery, вы можете использовать preventDefault() для этого

Комментарии:

1. вы не можете запретить обратную отправку напрямую с помощью c #. javascript должен это предотвратить. если вы используете jQuery, он кроссплатформенный

2. Видишь это http://api.jquery.com/event.preventDefault/ и http://www.switchonthecode.com/tutorials/jquery-snippet-the-epreventdefault-function

Ответ №3:

в функции javascript верните true или false, а затем добавьте возврат к вашему onclick, как я показываю здесь.

     function validateNclick(me)
    {
       if(allIsOk)
       {
         return true;
       }
       else
       {
         return false
        }
    }
  

и ваш атрибут.

 b1.Attribute.Add("onclick","javascript:return validateNclick(this);");
  

Ответ №4:

 b1.Attribute.Add("onclick","return validateNclick(this.id);");

function validateNclick(id){
//...
if(condition){
   return true
}
else{
  return false;
}
}