Ciao a tutti!
Dettagli: Drupal 7 + ubercart 3;
Ho inserito un file js nel modulo che dovrebbe eseguire un qualcosa all'evento click su radio button del tipo di pagamento, sembrerebbe funzionare tutto ma cosi non è:
Nel modulo aggiungo:
<?php
drupal_add_js(drupal_get_path('module', 'uc_fee') .'/uc_fee.js');
drupal_add_js("\$(document).ready( function () { update_method_line_item('". $form['panes']['payment']['payment_method']['#default_value'] ."'); } );", 'inline');
}
?>
fee.js:
var method_update;
$(document).ready(
function () {
$("input:radio[@name='panes[payment][payment_method]']").click(
function () {
update_method_line_item(this.value);
}
);
}
);
/**
* Update the payment method
*/
function update_method_line_item(path) { fai qualcosa ...
il sorgente della pagina è cosi:
<head>
<script src=".../uc_fee.js?lx7ykd"></script> il file js è caricato
<script>$(document).ready( function () { update_method_line_item('cod'); } );</script> la funzione pure
</head>
manca on click() al radio button?!
<div class="form-item form-type-radio form-item-panes-payment-payment-method">
<input type="radio" class="form-radio ajax-processed" value="cim" name="panes[payment][payment_method]" id="edit-panes-payment-payment-method-cim"> <label for="edit-panes-payment-payment-method-cim" class="option">Carta di credito su server sicuro:<br><img src="/sites/all/modules/ubercart/payment/uc_cim/cards.jpg"> </label>
</div>
sapete dirmi dove mi sono perso???
jQuery, per evitare potenziali conflitti, non è disponibile secondo l'alias $ ma devi usarlo in maniera esplicita (o crearti l'alias). Altra cosa, per passare parametri guardati il trasferimento attraverso drupal_add_js('config') ee l'utilizzo dei behavior (per l'utilizzo del tutto in maniera "pulita" all'interno di Drupal).
Il tuo codice dovrebbe diventare qualche cosa TIPO:
e il tuo JS una cosa TIPO:
(function($) {
$(document).ready(function() { alert('faccio cose' + Drupal.settings.miomodulo.miachiave); });
})(jQuery);
La parte con behavior non è implementata e il codice scritto al volo, quindi può essere che non funzioni al primo colpo ;)
Ciao
Marco
--
My blog
Working at @agavee