我遇到了一个问题,一个 javascript 函数获取一个字符串变量
在这种情况下,我得到了警报
selectedMonth
,弹出对话框显示了这个字符串的值,但是 switch 语句却无法正常工作。我遇到了这个问题在页面加载时发生,但当使用 <select>
的 onchange 监听器时它是正常的。在这种情况下,我得到了警报
Dezember
,但 switch 语句中的 december 却没有被调用。
function showDropDown(selectedMonth) {
alert(selectedMonth);
var settings = {
"url": "",
"method": "GET",
"timeout": 0,
};
switch (selectedMonth) {
case 'Januar':
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/1"
break;
case 'Februar':
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/2"
break;
case "März":
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/3"
break;
case "April":
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/4"
break;
case "Mai":
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/5"
break;
case "Juni":
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/6"
break;
case "Juli":
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/7"
break;
case "August":
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/8"
break;
case "September":
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/9"
break;
case "Oktober":
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/10"
break;
case 'November':
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/11"
break;
case 'Dezember':
settings.url = "https://sslbeta.de/api/plantsearchapi/latest/12"
break;
default:
// code block
}
alert(settings.url);
}
$(".New_Plant_Month").change(function () {
// Fetching Value
var month = $(this).val();
showDropDown(month);
});
// show months
$(document).ready(function() {
var month = $(".New_Plant_Month option:selected").text() + "";
showDropDown(month);
for (var i = 0; i < 6; i++) {
var d = new Date();
var months = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
var monthName = months[new Date(d.setMonth(d.getMonth() - i)).getMonth()];
//console.log(monthName);
$('.New_Plant_Month').append($("<option>").val(monthName).text(monthName));
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="New_Plant_Month">
</select>
ASP.NET Core代码
<!-- asp-items="New plant SelectList"-->
<div class="form-group">
<label asp-for="NewPlantMonth" class="control-label">Neue Pflanzen</label>
<!-- asp-items="NewsSelectList"-->
<select class="form-control Shoplist New_Plant_Month" onchange="showDropDown(this.value)" data-search="true" asp-for="NewPlantMonth">
<option value="NewPlantMonth"> @{var selectedValue = Model.NewPlantMonth != null ? Model.NewPlantMonth : "Bitte Monat auswählen"; } @selectedValue </option>
</select>
<span asp-for="NewPlantMonth" class="text-danger"></span>
</div>
showDropDown('Dezember')
? - Nicholas Towersettings
对象,但它没有对其进行任何操作,但代码会弹出正确的值-所有的url
也都是无效的,但由于你没有使用url
或设置中的任何内容,所以这不是问题。 - Bravo<select></select>
?在我看来更像是一个<input type='text' />
。 - StackSlavevar months = { 'Januar': 1, 'Februar': 2, 'März': 3, 'April': 4, /*... add the rest of the months*/ } settings.url = "https://sslbeta.de/api/plantsearchapi/latest/"+months[selectedMonth];
- Dalorzo