#javascript #html #eclipse #jsp #web-inf
Вопрос:
Привет всем, у меня есть следующая структура проекта веб-приложения
И мой classregister.html следует вызывать мои функции в файле «скрипты». Однако я не думаю, что он делает это, так как я не могу выбрать из своего второго выпадающего списка. Это работает, хотя, если у меня есть функция в том же файле, использующая или jsfiddle. Пожалуйста, где я ошибаюсь?
calssregister.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<link rel="stylesheet" href="styles/style.css" type="text/css" />
</head>
<body>
<form id="classregister" action="#" method="post">
<div>
<p>
<label class="category_div" id="category_div">Please select
Style:
<select name="category" class="required-entry" id="category"
onchange="return dynamicdropdown()">
<option value="">Select Style</option>
<option value="X">X</option>
<option value="Y">Y</option>
<option value="Z">Z</option>
<option value="A">A</option>
</select>
</label>
</p>
<p>
<label class="sub_category_div" id="sub_category_div">Please
select your Level: <select name="subcategory" id="subcategory"
onchange="return dynamicdropdownone()">
<option value="">Please select your Level</option>
</select>
</label>
</p>
<p>
<label class="sub_subcategory_div" id="sub_subcategory_div">Please
select Dance Class: <select name="sub_subcategory"
id="sub_subcategory" multiple>
<option value="">Please select a Dance Class</option>
</select>
</label>
</p>
</div>
</form>
<script src="scripts/myfunctions.js"></script>
</body>
</html>
myfunctions.js выглядит так:
function dynamicdropdown() {
var e = document.getElementById("category");
var listindex = e.options[e.selectedIndex].value;
//listindex = this.options[this.selectedIndex].value;
document.getElementById("sub_subcategory").length = 0;
document.getElementById("sub_subcategory").options[0] = new Option("Please select your Level", "");
document.getElementById("subcategory").length = 0;
switch (listindex) {
case "X":
document.getElementById("subcategory").options[0] = new Option("Please select Level", "");
document.getElementById("subcategory").options[1] = new Option("Beginner", "X_Beginner");
document.getElementById("subcategory").options[2] = new Option("Intermediate", "X_Intermediate");
break;
case "Y":
document.getElementById("subcategory").options[0] = new Option("Please select Level", "");
document.getElementById("subcategory").options[1] = new Option("Beginner", "Y_Beginner");
document.getElementById("subcategory").options[2] = new Option("Intermediate", "Y_Intermediate");
break;
case "Z":
document.getElementById("subcategory").options[0] = new Option("Please select Level", "");
document.getElementById("subcategory").options[1] = new Option("Beginner", "Z_Beginner");
document.getElementById("subcategory").options[2] = new Option("Intermediate", "Z_Intermediate");
break;
case "A":
document.getElementById("subcategory").options[0] = new Option("Please select Level", "");
document.getElementById("subcategory").options[1] = new Option("Beginner", "A_Beginner");
document.getElementById("subcategory").options[2] = new Option("Intermediate", "A_Intermediate");
break;
default:
document.getElementById("subcategory").options[0] = new Option("Please select Level", "");
break;
}
return true;
}
function dynamicdropdownone() {
var e = document.getElementById("subcategory");
var listindex = e.options[e.selectedIndex].value;
var selector = document.getElementById("sub_subcategory");
document.getElementById("sub_subcategory").length = 0;
switch (listindex) {
case "X_Beginner":
var monday = 1;
var mondays = getSpecificDayInAMonth(monday).length;
document.getElementById("sub_subcategory").options[0] = new Option("Please select ", "");
for (var i = 1; i < mondays; i ) {
selector.options[i] = new Option(getSpecificDayInAMonth(monday)[i] " 19:00-20:00 ", "monday_1900_2000");
selector.options[i] = new Option(getSpecificDayInAMonth(monday)[i] " 20:00-21:00 ", "monday_2000_2100");
}
break;
case "X_Intermediate":
var wednesday = 3;
var wednesdays = getSpecificDayInAMonth(wednesday).length;
document.getElementById("sub_subcategory").options[0] = new Option("Please select ", "");
for (var i = 1; i < wednesdays; i ) {
selector.options[i] = new Option(getSpecificDayInAMonth(wednesday)[i] " 19:00-20:30 ", "wednesday_1900_2030");
}
break;
case "Y_Beginner":
var thursday = 4;
var thursdays = getSpecificDayInAMonth(thursday).length;
document.getElementById("sub_subcategory").options[0] = new Option("Please select ", "");
for (var i = 1; i < thursdays; i ) {
selector.options[i] = new Option(getSpecificDayInAMonth(thursday)[i] " 19:00-20:00 ", "thursday_1900_2000");
}
break;
case "Y_Intermediate":
var thursday = 4;
var thursdays = getSpecificDayInAMonth(thursday).length;
document.getElementById("sub_subcategory").options[0] = new Option("Please select ", "");
for (var i = 1; i < thursdays; i ) {
selector.options[i] = new Option(getSpecificDayInAMonth(thursday)[i] " 20:00-21:00 ", "thursday_2000_2100");
}
break;
case "Z_Beginner":
var tuesday = 4;
var tuesdays = getSpecificDayInAMonth(tuesday).length;
document.getElementById("sub_subcategory").options[0] = new Option("Please select ", "");
for (var i = 1; i < tuesdays; i ) {
selector.options[i] = new Option(getSpecificDayInAMonth(tuesday)[i] " 19:00-20:00 ", "tuesday_1900_2000");
}
break;
case "Z_Intermediate":
var tuesday = 2;
var tuesdays = getSpecificDayInAMonth(tuesday).length;
document.getElementById("sub_subcategory").options[0] = new Option("Please select ", "");
for (var i = 1; i < tuesdays; i ) {
selector.options[i] = new Option(getSpecificDayInAMonth(tuesday)[i] " 20:00-21:00 ", "tuesday_2000_2100");
}
break;
case "A_Beginner":
var friday = 5;
var fridays = getSpecificDayInAMonth(friday).length;
document.getElementById("sub_subcategory").options[0] = new Option("Please select ", "");
for (var i = 1; i < fridays; i ) {
selector.options[i] = new Option(getSpecificDayInAMonth(friday)[i] " 19:00-20:00 ", "friday_1900_2000");
}
break;
case "A_Intermediate":
var friday = 4;
var fridays = getSpecificDayInAMonth(friday).length;
document.getElementById("sub_subcategory").options[0] = new Option("Please select ", "");
for (var i = 1; i < fridays; i ) {
selector.options[i] = new Option(getSpecificDayInAMonth(friday)[i] " 20:00-21:00 ", "friday_2000_2100");
}
break;
default:
document.getElementById("sub_subcategory").options[0] = new Option("Please select ", "");
break;
}
return true;
}
Комментарии:
1. Разве идентификатор не должен быть либо
<script src="../scripts/myfunctions.js">
или<script src="/scripts/myfunctions.js">
вместо<script src="scripts/myfunctions.js">
? Папка «скрипты» находится не в той папке, где находится HTML-файл.2. @secan попробовал ваше предложение, но проблема остается
Ответ №1:
Я понял, где я ошибся. Итак, прежде всего синтаксис и позиционирование
<script src="scripts/myfunctions.js"></script>
был прав. Однако мне не следовало использовать
onchange="return dynamicdropdownone()"
но
onchange="dynamicdropdownone()"
при вызове функций.
Ответ №2:
scripts/myfunction.js это относительный путь, поэтому он думает, что он будет находиться в том же каталоге, в котором будет находиться HTML-файл. Вместо <script src="scripts/myfunctions.js"></script>
Попробуй <script src="http://domain.here/scripts/myfunctions.js"></script>
.