Tengo esta función js:
function neki() { if ( $("input[id*='txtIDCriteria']").val() == '' && $("input[id*='chkID']").is(':checked') ) { alert('Value is required.'); } }
Y este código asp:
<table border="0" cellpadding="1" cellspacing="0" style="width: 100%" class="DataTable" id="check_all" > <tr> <td> <asp:CheckBox CssClass="formdata100" ID="chkID" runat="server"> </asp:CheckBox> </td> <td> <asp:Label CssClass="formdata100" ID="lblID" runat="server"> Maintenance ID </asp:Label> </td> <td> <asp:TextBox CssClass="formdata100" ID="txtIDCriteria" runat="server" MaxLength="6" onkeyup="return validate_int(event,this);" > </asp:TextBox> </td> </tr> <tr> <td colspan="5"> <asp:Button Text="search" ID="search" OnClick="search_Click" runat="server" style="float:right" onClientClick="neki()" /> </td> </tr>
Quiero que este OnClick="search_Click"
se detenga cuando se ejecute esta función neki()
es decir, cuando sea verdadera.
¿Cómo resolverlo a través de JavaScript?
Sí, usted puede hacer esto. ¿Cómo funciona esto?
Si la función de clic onclient devuelve verdadero, entonces se ejecuta el código/evento del lado del servidor.
Si la función de clic en el cliente devuelve falso, entonces el código/evento del lado del servidor NO se ejecuta. Así que puedes hacer esto:
<asp:Button Text="search" ID="search" OnClick="search_Click" runat="server" style="float:right" onClientClick="return neki();"
Y ahora tu código JS puede ser este:
function neki() { if ( $("input[id*='txtIDCriteria']").val() == '' && $("input*[id*='chkID']").is(':checked')) { alert('Value is required.'); return true; } return false; }
Si bien esto funcionará para lo anterior, si usa un cuadro de diálogo jQuery.UI, el código no espera, pero hay una solución simple incluso para el cuadro de diálogo jQuery.UI que responde para decir una respuesta sí/no, y aún puede condicional ejecute el código del botón del lado del servidor.
el código debería ser así:
function neki() { if ( $("input[id*='txtIDCriteria']").val() == '' && $("input*[id*='chkID']").is(':checked')) { alert('Value is required.'); return false; <--- return false to NOT run button click } return true; <--- return true - this will allow button click to run }