从级联 SELECT 元素更改事件调用外部 JS 函数
Calling external JS function from cascading SELECT element change event
我是jQuery菜鸟,我正在尝试弄清楚如何将此脚本移动到外部.js文件。 我已经尝试复制它并在页面上引用,但它似乎不起作用。
我在这里错过了什么?
<script type="text/javascript">
$(document).ready(function () {
$('#YearD').change(function () {
var selectedYear = $(this).val();
if (selectedYear != null && selectedYear != '') {
$.getJSON('@Url.Action("Months")', { year: selectedYear }, function (months) {
var monthsSelect = $('#Month');
monthsSelect.empty();
$.each(months, function (index, month) {
monthsSelect.append($('<option/>', {
value: month.value,
text: month.text
}));
});
});
}
});
});
</script>
<script type="text/javascript">
$('#Month').change(function () {
var selectedMonth = $(this).val();
if (selectedMonth != null && selectedMonth != '') {
$.getJSON('@Url.Action("Days")', { month: selectedMonth }, function (days) {
var daysSelect = $('#Day');
daysSelect.empty();
if (days == 0) {
daysSelect.css("visibility", "hidden");
}
else {
daysSelect.css("visibility", "visible");
}
$.each(days, function (index, day) {
daysSelect.append($('<option/>', {
value: day.value,
text: day.text
}));
});
});
}
});
</script>
如果你有,
<script type="text/javascript">
$(document).ready(function () {
// your code
})
你应该做,
<script type='text/javascript' src='scripts/myfile.js'></script>
在您的 HTML 文件中。
在您的 myfile.js 文件中(驻留在scripts
文件夹中)
$(document).ready(function () {
// your code
})
请注意,myfile.js 文件中没有<script>
标签。
另外,请记住您的代码使用的是 jQuery
,因此请在引用文件后引用您的myfile.js
jQuery.js
。
例如
<script type='text/javascript' src='scripts/myfile.js'></script>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
另外,将您的代码放在 $(document).ready
中。您的第二个代码在 dom 准备就绪之前执行,并将抛出错误。
它应该是这样的(在你的我的文件中.js)
$(document).ready(function () {
$('#YearD').change(function () {
var selectedYear = $(this).val();
if (selectedYear != null && selectedYear != '') {
$.getJSON('@Url.Action("Months")', { year: selectedYear }, function (months) {
var monthsSelect = $('#Month');
monthsSelect.empty();
$.each(months, function (index, month) {
monthsSelect.append($('<option/>', {
value: month.value,
text: month.text
}));
});
});
}
});
$('#Month').change(function () {
var selectedMonth = $(this).val();
if (selectedMonth != null && selectedMonth != '') {
$.getJSON('@Url.Action("Days")', { month: selectedMonth }, function (days) {
var daysSelect = $('#Day');
daysSelect.empty();
if (days == 0) {
daysSelect.css("visibility", "hidden");
}
else {
daysSelect.css("visibility", "visible");
}
$.each(days, function (index, day) {
daysSelect.append($('<option/>', {
value: day.value,
text: day.text
}));
});
});
}
});
});
将以下内容添加到要运行代码的页面:
<script src="js_file_name.js"></script>
然后将代码直接复制并粘贴到名为 js_file_name.js
的文件中
从外部文件中删除<script type="text/javascript">
和</script>
。
将此添加到您的 HTML 文件中:
<script type="text/javascript" src="filename.js"></script>
相关文章:
- 如何从窗体调用外部javascript方法
- 如何使用Java在WebDriver中调用外部JavaScript
- 从Haml调用外部javascript中的ruby数组
- 有什么方法可以调用外部URI方案吗
- 我的函数不起作用,Ajax调用,JQuery,调用外部?我不知道
- 在 HTML 中调用外部.js文件
- 如何使用Javascript调用外部库's函数内部的函数
- 调用外部JavaScript文件中的会话变量
- 如何使用javascript(和AJAX?)调用外部对象
- 调用外部javascript文件时出现问题
- 在 mongo map 中调用外部 javascript 函数(对象)或减少上下文的可能方法
- 如何使用node.js在HTML中调用外部JavaScript文件
- 如何在 javascript 中内部调用外部函数
- 在 JavaScript 中调用外部脚本
- 调用外部JS函数验证电子邮件
- 使用 Node 应用程序 (KeystoneJS) 调用外部 API
- 使用调试器从内部函数调用外部函数中定义的变量
- 从 MXML 调用外部 JavaScript 函数
- 我将如何在单击时“调用”外部JavaScript文件
- 如何在内部异步函数完成运行后调用外部函数返回