Contact

For any request, please use this form:

Placeholder v1

Tout d'abord, pour vous aider à intégrer du JavaScript sur votre formulaire pour améliorer l'expérience de vos clients, voici le code injecté par Dalenys dans votre template, en replacement de votre balise %PLACEHOLDER%.

Attention

Mise à jour 2017 :
Cette version obsolète doit être remplacée par la v2.
Veuillez vous référer à la documentation officielle Dalenys.

html
Copy
<form method="POST" id="B2B-FORM">
    <table id="b2b-table">
        <tbody>
            <tr id="b2b-ccnum">
                <th>Card number</th>
                <td nowrap="nowrap">
                    <input type="text" name="CARDCODE" value="" size="20" maxlength="30" id="b2b-ccnum-input" autocomplete="off" />
                </td>
            </tr>
            <tr  class="invalid">
                <td></td>
                <td></td>
            </tr>
            <tr id="b2b-expiration-date">
                <th>Expiration date</th>
                <td>
                    <select name="MONTHDATE" id="b2b-month-input">
                        <option value="01">01</option>
                        <option value="02">02</option>
                        <option value="03">03</option>
                        <option value="04">04</option>
                        <option value="05">05</option>
                        <option value="06">06</option>
                        <option value="07">07</option>
                        <option value="08">08</option>
                        <option value="09">09</option>
                        <option value="10">10</option>
                        <option value="11">11</option>
                        <option value="12">12</option>
                    </select>
                    <select name="YEARDATE" id="b2b-year-input">
                        <option value="14">2014</option>
                        <option value="15">2015</option>
                        <option value="16">2016</option>
                        <option value="17">2017</option>
                        <option value="18">2018</option>
                        <option value="19">2019</option>
                        <option value="20">2020</option>
                        <option value="21">2021</option>
                        <option value="22">2022</option>
                        <option value="23">2023</option>
                        <option value="24">2024</option>
                        <option value="25">2025</option>
                        <option value="26">2026</option>
                        <option value="27">2027</option>
                        <option value="28">2028</option>
                    </select>
                </td>
            </tr>
            <tr class="invalid">
                <td></td>
                <td></td>
            </tr>
            <tr id="b2b-cvv">
                <th>Card verification code</th>
                <td>
                    <input type="text" name="CARDCVV" value="" size="3" maxlength="5" id="b2b-cvv-input" autocomplete="off" />
                </td>
            </tr>
            <tr class="invalid">
                <td></td>
                <td></td>
            </tr>
            <tr id="b2b-cvv-comment">
                <td colspan="2">
                    <p>The three last digits on the back of your card</p>
                </td>
            </tr>
            <tr id="b2b-fullname">
                <th>Name</th>
                <td>
                    <input type="text" name="CARDFULLNAME" value="" size="40" maxlength="40" id="b2b-fullname-input" autocomplete="off" />
                </td>
            </tr>
            <tr class="invalid">
                <td></td>
                <td></td>
            </tr>
            <tr id="b2b-email">
                <th>Email</th>
                <td>
                    <input type="text" name="CLIENTEMAIL" value="" size="20" maxlength="40" id="b2b-email-input" autocomplete="off" />
                </td>
            </tr>
            <tr class="invalid">
                <td></td>
                <td></td>
            </tr>
            <tr id="b2b-buttons">
                <td colspan="2">
                    <input type="SUBMIT" id="b2b-submit" name="B2B-VALIDATE" value="Validate" />
                    <div  id="b2b-loading" style="visibility: hidden;">Processing...</div>
                    <input type="SUBMIT" id="b2b-cancel" name="B2B-CANCEL" value="Cancel" />
                </td>
            </tr>
        </tbody>
    </table>
</form>
<script type="text/javascript">

    if (document.getElementById("B2B-FORM"))
    {
        document.getElementById("B2B-FORM").onsubmit = function () {
            document.getElementById("b2b-submit").style.display = "none";
            document.getElementById("b2b-loading").style.visibility  = "visible";
            // Override this function to prevent multiple submit
            this.onsubmit = function () { return false; };
            return true;
        };
    }

    if (document.getElementById("b2b-ccnum-input"))
    {
        document.getElementById("b2b-ccnum-input").onblur = function () {
            cardcode = this.value;
            this.value = cardcode.replace(/[^\d]/g, '');
        };
        document.getElementById("b2b-ccnum-input").onkeyup = function () {
            cardcode = this.value;
            this.value = cardcode.replace(/[^\d]/g, '');
            var longueur = this.value.length;
            if (longueur > 19) {
                this.value = this.value.substr(0,19);
            }
        };

    }
</script>

L'objectif ici est de remplacer le texte des labels de champs, des messages d'erreur, du bouton de validation du formulaire et d'autres commentaires qui facilitent la navigation.

L'exemple ci-dessous illustre comment créer une fonction de traduction, en l'occurrence pour le japonais, mais vous pouvez ajouter autant de langues que nécessaire. Ajoutez simplement ce code juste avant la balise fermante </body> :

html
Copy
<script type="text/javascript">
    function translateB2B(lang) {
        // JAPANESE / 日本語
        if( lang == 'JP' ) {
            // Card number
            if( document.getElementById('b2b-ccnum') ) {
                // label
                document.getElementById('b2b-ccnum').firstElementChild.innerHTML='カードコード';
                // error
                document.getElementById('b2b-CARDCODE-errors').firstElementChild.innerHTML='無効なカードコード';
            }

            // Expiry
            if( document.getElementById('b2b-expiration-date') ) {
                // label
                document.getElementById('b2b-expiration-date').firstElementChild.innerHTML='有効期限';
                // error
                document.getElementById('b2b-YEARDATE-errors').firstElementChild.innerHTML='無効な有効期限';
            }

            // Card verification code (CVV / CVC)
            if( document.getElementById('b2b-cvv') ) {
                // label
                document.getElementById('b2b-cvv').firstElementChild.innerHTML='CVV';
                // comment
                document.getElementById('b2b-CARDCVV-comment').firstElementChild.innerHTML='カード番号の後に出現する3桁の番号。';
                // For American Express card only : document.getElementById("b2b-cvv-comment").innerHTML='カード番号の上に表示される4桁の数字。'; // comment Amex
                // error
                document.getElementById('b2b-CARDCVV-errors').firstElementChild.innerHTML='無効なCVV';
            }

            // Cardholder full name
            if( document.getElementById('b2b-fullname') ) {
                // label
                document.getElementById('b2b-fullname').firstElementChild.innerHTML='フルネーム';
                // error
                document.getElementById('b2b-CARDFULLNAME-errors').firstElementChild.innerHTML='行方不明のフルネーム';
            }

            // Cardholder email
            if( document.getElementById('b2b-email') ) {
                // label
                document.getElementById('b2b-email').firstElementChild.innerHTML='メールアドレス';
                // error
                document.getElementById('b2b-CLIENTEMAIL-errors').firstElementChild.innerHTML='無効な電子メールアドレス';
            }

            // Submit button
            if( document.getElementById('b2b-submit') ) {
                // Button's text
                document.getElementById('b2b-submit').value='Ok';
            }

            // Cancel button
            if( document.getElementById('b2b-cancel') ) {
            	// Button's text
                document.getElementById('b2b-cancel').value='キャンセル';
            }
        }
    }
</script>

N'oubliez pas d'ajouter un événement onload sur votre balise <body> pour déclencher le remplacement de texte à la volée, et d'ajustez la langue traduite selon vos besoins :

html
Copy
<body onload="translateB2B('JP')">

Appareils mobiles

Parce qu'un formulaire plus pratique réduit la friction lors de la finalisation d'une transaction, je recommande vivement de forcer l'affichage du clavier numérique, sur les appareils mobiles, pour faciliter la saisie dans les champs du code de carte et du cryptogramme (CVV).

Il suffit de rajouter un peu de JavaScript :

Astuce

Mise à jour 2021 :
Utilisez plutôt le type number à la place de tel, désormais pleinement compatible avec les smartphones et plus approprié.

html
Copy
<script type="text/javascript">
    function displayNumericKeyboard(elemId) {
        document.getElementById(elemId).type = "tel";
    }
</script>

Ajoutez un événement onload sur votre balise <body> pour appliquer la changement de type sur les champs concernés :

html
Copy
<body onload="displayNumericKeyboard('b2b-ccnum-input'); displayNumericKeyboard('b2b-cvv-input');">

Commentaires

Participer ?

S'il vous plaît, prenons soin de nos écrits et soyons respectueux et constructifs.