¿Cómo se crea un enlace de este tipo:método link_to y haga clic en evento en rieles
<a href="#" onclick="document.getElementById('search').value=this.value">
utilizando el método link_to
en Rails?
No pude encontrarlo en Rails docs.
¿Cómo se crea un enlace de este tipo:método link_to y haga clic en evento en rieles
<a href="#" onclick="document.getElementById('search').value=this.value">
utilizando el método link_to
en Rails?
No pude encontrarlo en Rails docs.
Puede utilizar link_to_function
(eliminado en Rails 4.1):
link_to_function 'My link with obtrusive JavaScript', 'alert("Oh no!")'
O, si es absolutamente necesario utilizar link_to
:
link_to 'Another link with obtrusive JavaScript', '#',
:onclick => 'alert("Please no!")'
Sin embargo, poner JavaScript derecha en su HTML generado es obtrusivo, y es mala práctica.
En su lugar, el código de Rails simplemente debería ser algo como esto:
link_to 'Link with unobtrusive JavaScript',
'/actual/url/in/case/javascript/is/broken',
:id => 'my-link'
Y asumiendo que usted está utilizando el Prototype JS framework, JS como este en su application.js
:
$('my-link').observe('click', function (event) {
alert('Hooray!');
event.stop(); // Prevent link from following through to its given href
});
O si lo' re usando jQuery:
$('#my-link').click(function (event) {
alert('Hooray!');
event.preventDefault(); // Prevent link from following its href
});
Por usi ng esta tercera técnica, usted garantiza que el enlace seguirá hasta alguna otra página — no solo fallará silenciosamente — si JavaScript no está disponible para el usuario. Recuerde, JS podría no estar disponible porque el usuario tiene una conexión a Internet deficiente (por ejemplo, dispositivo móvil, wifi público), el administrador del sistema del usuario o del usuario lo deshabilitó o se produjo un error inesperado de JS (es decir, error del desarrollador).
link_to_function no se eliminó, pero se introdujo en Rails 3. Supongo que quería decir link_to_remote. – dimir
'link_to_function' ha existido desde Rails 1.0, pero tiene razón en que no fue eliminado; estaba obsoleto (y luego desaprobado, y luego volteó algunas veces más). Actualizaré mi respuesta. ¡Gracias! –
Si tengo una lista de acciones, y quería hacer algo similar. ¿Cómo obtendré el símbolo de stock en la función de clic? –
Para dar seguimiento a la respuesta de Ron si se utiliza jQuery y ponerlo en application.js o la sección de cabecera que necesita para envolverlo en una sección preparada() ...
$(document).ready(function() {
$('#my-link').click(function(event){
alert('Hooray!');
event.preventDefault(); // Prevent link from following its href
});
});
Tenga en cuenta que esto se puede acortar a '$ (function() {...});', que es equivalente a '$ (document) .ready (function() {...});' – Confusion
Por cierto [jquery 3.0] (http://api.jquery.com/ready/) recomienda usar '$ (function() { // Handler para .ready() llamado. });' en lugar de ** $ (document) .ready() ** –
para rieles 5 con turbolinks use: $ (document) .on ('turbolinks: load', function() { – Brad
sólo tiene que utilizar
=link_to "link", "javascript:function()"
A menos que haya dejado el '#' para abreviar, no parece tener mucho sentido usar link_to. ¿Por qué no usar una etiqueta a con el conjunto onclick como lo has hecho anteriormente? – Brian