Tengo algunos códigos heredados, algunos implementados en JavaScript y otros implementados en C#. Ahora tengo que escribir un fragmento de código para decidir si disparar o no OnClick depende de algunas condiciones. Quiero implementarlo comprobando la condición en OnClientClick. Probé algunos métodos de Internet, pero no funcionaron. (Soy nuevo en JavaScript y C#, por lo que realmente no entiendo las soluciones, por ejemplo, configurar OnClientClick="return confirm ("Esto eliminará el informe. ¿Continuar?"); return false; ", no ¿siempre regresa antes de ejecutar "return false"?")
mis codigos son los siguientes
aspx file: <div id="searchBtn"><asp:LinkButton ID="SearchButton" OnClientClick="return SetInputString(); return false;" OnClick="SearchClick" ValidationGroup="search" runat="server"><img src="images/btn_search.jpg" alt="検索" /></asp:LinkButton></div> js file: function SetInputString() { var textbox = document.getElementById("textForm"); var inputString = document.getElementById("inputString"); clearNonInteractiveTimer(); inputString.value = textbox.value; if (/^[0-9]{6}$/.test(inputString.value)) { EvaluateEnteredSearch(inputString.value); return false; } else { return true; } } cs file: public void SearchClick(object sender, EventArgs e){ ... }Confirm es un método "incorporado" en Javascript.
Este método es modal: detiene la ejecución de scripts y evita que el usuario interactúe con el resto de la página hasta que se cierra la ventana.
Entonces no, la salida dependerá de la elección del usuario.
return false significa que está cancelando la acción predeterminada del botón presionado.
Hay dos formas de decirle al navegador que desea cancelar la acción predeterminada para algún evento, en este caso, cancelar el siguiente enlace: llamar a event.preventDefault () o return false desde la función del controlador. El segundo solo funciona si asigna un controlador usando el atributo onevent así:
<a href="//google.com" onclick="return false"> google </a>O así:
<a href="//google.com"> google </a> <script> document.getElementsByTagName ('a') [0] .onclick = function () { return false; } </script>Más información aquí: Cómo deshacer una acción predeterminada
Ahora, ¿qué pasa con tu código?
OnClickEvent envía una solicitud al servidor y realiza una acción en respuesta.
OnClientClickes muy similar a la función onclick que usamos para escribir en Javascript... es decir, ejecuta sentencias en el lado del cliente sin enviarlas al servidor.
SetInputString se llamará primero, si es true , se llamará a SearchClick
Además, más información aquí: cuándo llamar al servidor onClick vs OnClientClick