问题:我的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>
答案 0 :(得分:0)
您如何确定用户所在的位置? 如果是通过用户在仪表板中设置的值,那么我不确定。
但是,如果脚本根据用户位置请求信息, 可能是权限错误,具体取决于Heroku是否允许。
如果该函数在本地运行,则代码可以正常工作,那里没什么问题。 对我来说,这听起来像是某种许可错误。
如果您能够发布有关该问题的更多信息。 如果可能的话,控制台(错误)输出也会很有用。
答案 1 :(得分:0)
这可能是turbolinks问题。你可以尝试
1)从Gemfile中删除gem'turbolinks'行。
2)从您的app / assets / javascripts / application.js中删除// = require涡轮链接。
3)从您的app / views / layouts / application.html.erb中删除两个“ data-turbolinks-track” =>真正的哈希键/值对。