#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;
}
}