Javascript .on ("изменить", ... не работает в производстве, но работает localhost - PullRequest
0 голосов
/ 27 марта 2019

Проблема: Кажется, мой javascript не работает на heroku, но работает локально. Хотя есть другое javascript , которое у меня есть в приложении, которое работает.

В основном я использую Bootstrap 4 для CSS. Большинство моих JS выполняется вручную, а не с помощью Bootstrap.

Вот форма, которая должна динамически отправлять информацию:

    <form action="/bank_accounts" method="POST" id="payment-form-1">
                                        <input type="hidden" name="token" />
                                        <div class="form-row" "form-control">
                                          <label for="country">Country</label>
                                          <select id="country" class="form-control form-group">
                                            <option value="">-- select one -- </option>
                                            <option value="US">United States</option>
                                            <option value="AU">Australia</option>
                                            <option value="AT">Austria</option>
                                            <option value="BE">Belgium</option>
                                            <option value="CH">Switzerland</option>
                                            <option value="DK">Denmark</option>
                                            <option value="FI">Finland</option>
                                            <option value="LU">Luxembourg</option>
                                            <option value="NL">Netherland</option>
                                            <option value="NO">Norway</option>
                                            <option value="SE">Sweden</option>
                                            <option value="CA">Canada</option>
                                            <option value="FR">France</option>
                                            <option value="DE">Germany</option>
                                            <option value="NZ">New Zealand</option>
                                            <option value="GB">United Kingdom</option>
                                            <option value="ES">Spain</option>
                                          </select>
                                        </div>
                                        <div class="form-row">
                                          <label for="currency">Currency</label>
                                          <select id="currency" class="form-control form-group">
                                            <option value="">-- select one -- </option>
                                          </select>
                                        </div>

<script>

$(document).ready(function() {

    $("#country").change(function() {
        var val = $(this).val();
        if (val == "US") {
            $("#currency").html("<option value='USD'>US Dollar</option>");
        } else if (val == "AU") {
            $("#currency").html("<option value='AUD'>AU Dollar</option>");
        } else if (val == "GB") {
            $("#currency").html("<option value='EUR'>Euro</option><option value='GBP'>Pound</option>");
        } else if (val == "CA") {
            $("#currency").html("<option value='CAD'>Canadian Dollar</option><option value='USD'>US Dollar</option>");
        } else if (val == "DK") {
            $("#currency").html("<option value='EUR'>Euro</option><option value='DKK'>Danish Krone</option>");
        } else if (val == "NO") {
            $("#currency").html("<option value='EUR'>Euro</option><option value='NOK'>Norwegian Krona</option>");
        } else if (val == "SE") {
            $("#currency").html("<option value='EUR'>Euro</option><option value='SEK'>Swedish Krona</option>");
        } else if (val == "CH") {
            $("#currency").html("<option value='EUR'>Euro</option><option value='CHF'>Swiss Franc</option>");
        } else if (val == "NZ") {
            $("#currency").html("<option value='NZD'>NZ Dollar</option>");
        } else if (val == "AT" || "BE" || "FR" || "FI" || "GE" || "IE" || "NL" || "PT" || "ES" || "LU") {
            $("#currency").html("<option value='EUR'>Euro</option>");
        }
    });
});

</script>

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Это может быть проблема с турболинками. Вы можете попробовать

1) Удалите строку gem 'turbolinks' из вашего Gemfile.

2) Удалите // = требуемые турболинки из вашего приложения / assets / javascripts / application.js.

3) Удалите две пары «data-turbolinks-track» => истинный хэш-ключ / значение из вашего приложения / views / layouts / application.html.erb.

0 голосов
/ 27 марта 2019

Как вы определяете местоположение пользователей? Если это через значение, которое пользователь устанавливает в приборной панели, то я не уверен.

Если, однако, скрипт запрашивает информацию в зависимости от местоположения пользователя это может быть ошибка разрешения в зависимости от того, разрешает ли это Heroku или нет.

Если функция работает локально, то код работает, в этом нет ничего плохого. Для меня это звучит как ошибка разрешения какой-то.

Если вы можете опубликовать дополнительную информацию о проблеме. По возможности также вывод на консоль (ошибка), что может быть полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...