Скриптовый скрипт не работает на сайте
Если я скопирую код отсюда: https://jsfiddle.net/agt10exp/
На скрипте он работает нормально, однако, когда я создаю новый файл на своем компьютере и просто вставляю в него код, я получаю ту же компоновку, однако он не работает должным образом (добавил <html></html>
а также <script src....></script>
в мой код:
(PS Я программист на Python, так что, возможно, проблема в моих знаниях HTML/Js)
<html>
I am a </span><select name="parent_selection" id="parent_selection">
<option value="">-- Please Select --</option>
<option value="patient">Patient</option>
<option value="doctor">Doctor or physician</option>
<option value="school">School or parent</option>
<option value="worker">Case worker</option>
</select>
<br /><span>and I need information on</span>
<select name="child_selection" id="child_selection" onchange="location = this.options[this.selectedIndex].value;">
</select>
</html>
<!------answer 1: not wokring --------------->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var jq81 = jQuery.noConflict();
jq81(document).ready(function($){
//let's create arrays
var patient = [
{display: "My initial visit", value: "patients#visit" },
{display: "My initial evaluation", value: "patients#visit" },
{display: "My appointments", value: "patients#appointments" },
{display: "Your payment policies", value: "patients#policies" }];
var doctor = [
{display: "Our approach", value: "doctors-and-physicians" },
{display: "Our services", value: "services" },
{display: "Referring patients", value: "patients#visit" }];
var school = [
{display: "Our approach", value: "schools-and-parents" },
{display: "My child's initial evaluation", value: "patients#visit" },
{display: "Setting appointments", value: "patients#appointments" },
{display: "Your payment policies", value: "patients#policies" }];
var worker = [
{display: "Our approach", value: "case-workers" },
{display: "Insurance policies", value: "clients#insurance" },
{display: "Your Payment policies", value: "patients#policies" }];
//If parent option is changed
jq81("#parent_selection").change(function() {
var parent = jq81(this).val(); //get option value from parent
switch(parent){ //using switch compare selected option and populate child
case 'patient':
list(patient);
break;
case 'doctor':
list(doctor);
break;
case 'school':
list(school);
break;
case 'worker':
list(worker);
break;
default: //default child option is blank
jq81("#child_selection").html('');
break;
}
});
//function to populate child select box
function list(array_list)
{
jq81("#child_selection").html(""); //reset child options
jq81(array_list).each(function (i) { //populate child options
jq81("#child_selection").append("<option value=\""+array_list[i].value+"\">"+array_list[i].display+"</option>");
});
}
});
</script>
Я видел больше людей, у которых была такая же проблема:
- Код работает на скрипке, но не на сайте
JSFiddle код не работает в моей собственной странице JavaScript-код работает в jsfiddle, но не работает в браузере
Тем не менее, я попробовал решения, но я не мог понять это, я надеюсь, что кто-то может мне помочь
1 ответ
Решение
Вы объявляете пользовательский скрипт и добавляете jquery, но они должны быть отдельными:
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
+ Примечание JQuery SRC URL
РЕДАКТИРОВАТЬ: этот код отлично работает в моем Chrome
<html>
I am a </span><select name="parent_selection" id="parent_selection">
<option value="">-- Please Select --</option>
<option value="patient">Patient</option>
<option value="doctor">Doctor or physician</option>
<option value="school">School or parent</option>
<option value="worker">Case worker</option>
</select>
<br /><span>and I need information on</span>
<select name="child_selection" id="child_selection" onchange="location = this.options[this.selectedIndex].value;">
</select>
</html>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var jq81 = jQuery.noConflict();
jq81(document).ready(function($){
//let's create arrays
var patient = [
{display: "My initial visit", value: "patients#visit" },
{display: "My initial evaluation", value: "patients#visit" },
{display: "My appointments", value: "patients#appointments" },
{display: "Your payment policies", value: "patients#policies" }];
var doctor = [
{display: "Our approach", value: "doctors-and-physicians" },
{display: "Our services", value: "services" },
{display: "Referring patients", value: "patients#visit" }];
var school = [
{display: "Our approach", value: "schools-and-parents" },
{display: "My child's initial evaluation", value: "patients#visit" },
{display: "Setting appointments", value: "patients#appointments" },
{display: "Your payment policies", value: "patients#policies" }];
var worker = [
{display: "Our approach", value: "case-workers" },
{display: "Insurance policies", value: "clients#insurance" },
{display: "Your Payment policies", value: "patients#policies" }];
//If parent option is changed
jq81("#parent_selection").change(function() {
var parent = jq81(this).val(); //get option value from parent
switch(parent){ //using switch compare selected option and populate child
case 'patient':
list(patient);
break;
case 'doctor':
list(doctor);
break;
case 'school':
list(school);
break;
case 'worker':
list(worker);
break;
default: //default child option is blank
jq81("#child_selection").html('');
break;
}
});
//function to populate child select box
function list(array_list)
{
jq81("#child_selection").html(""); //reset child options
jq81(array_list).each(function (i) { //populate child options
jq81("#child_selection").append("<option value=\""+array_list[i].value+"\">"+array_list[i].display+"</option>");
});
}
});
</script>