2012-08-14 3 views
0

У меня проблема с кнопками.BUTTON ONCLICK ONSERVERCLICK

Я хочу, чтобы произошла проверка на стороне клиента (скажем, выбрав максимум 4 флажка в datalist).

Я использовал INPUT TYPE = "BUTTON" RUNAT = "SERVER" стиль тега. и положил Onserverclick = "someservermethod", который отлично работает.

Я написал Validate() и добавил onclick = "return validate();" к предыдущей HTML-разметке и думал, что если он вернет false, то мой код на стороне сервера someservermethod() не будет выполняться, и он отлично работает, как ожидалось.

Но когда я вернусь, я подумал, что он сгорит мой someservermethod(), но это не работает. Любые мысли о том, почему он не работает?

HTML MARKUP НИЖЕ ДЛЯ КНОПКИ

button onclick="return ValidateSelection();" type="button" id="btnSubmit" 
       runat="server" onserverclick="btnSubmit_Click" 

JAVASCRIPT КОД

function ValidateSelection() 
{ 
    if(good) 
    { 
    // I expect that my server side code btn_Submit would have got called. But 
    // it doesn't get called. 
    return true; 
    } 
    else 
    { 
    //This works great. Not calling the server side method for the button 
    alert('something happened'); 
    return false; 
    } 
} 

Я думаю, что я Мессинг с форматированием. Простите.

+0

Покажите нам полный входной тег вместе с яваскриптом Mathod для проверки – Adil

+0

Поэтому актуальная проблемой является то, что ваша сторона клиента 'Validate()' функция возвращает истину, но код на стороне сервера не выполняется? Если да, то у вас есть какая-либо форма представления вообще? –

+0

@ShadowWizard В моем случае .aspx не имеет тегов представления формы. Но раньше, когда я не должен был проверять, я просто использовал onserverclick. Теперь мне нужно выполнить проверку клиентов, а затем, после того, как я запустил Google, я добавил Validate() и вызвал его из кнопки onclick. – SARAVAN

ответ

4

Элемент управления, который вы используете прямо сейчас, это HtmlButton, который не подходит для того, что вы пытаетесь сделать, поскольку ваш onclick перезаписывает требуемый код на стороне клиента для сообщения назад.

Что вам нужно, это элемент управления Button, который поддерживает перезапись клиентской стороны onclick и все еще выполняет запись, как обычно.

Изменения разметки на это, и он должен работать:

<asp:button OnClientClick="return ValidateSelection();" id="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit"></asp:Button> 
+0

Спасибо за ваш ответ – SARAVAN