gpt4 book ai didi

javascript - 页面加载时无法调用 JavaScript 函数

转载 作者:行者123 更新时间:2023-11-30 18:01:54 25 4
gpt4 key购买 nike

我有一个名为 refreshProjects() 的 javascript 函数,它的作用是根据在上一个下拉列表中选择的内容过滤下拉列表。但是我还需要在页面加载完成后直接过滤我的列表。

我尝试使用代码 window.onload = refreshProjects(id) 但没有成功,但是当我使用 window.onload = alert('This page has finished loading!') 时 onload 有效,所以我知道那部分脚本有效。那么我如何在加载时调用 javascript 函数,我认为这很简单,但我尝试的一切都失败了。

@section Scripts {

@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">

window.onload = refreshProjects(id); <-- Problem

$("#ddCustomers").change(function () {
refreshProjects($(this).val());
});
function refreshProjects(id) {
var projects = $("#ddProjects");
$.get('@Url.Action("FilterProjects","TimeEntry")', { customerId: id },
function (result) {
// clear the dropdown
projects.empty();

//Add a deafult "null" value
$("#ddProjects").get(0).options[0] = new Option("[ - No project - ]", "-1");

// rebuild the dropdown
$.each(result, function (i, e) {
projects.append($('<option/>').text(e.Text).val(e.Value));
});
});
}</script>
}

这是针对 MVC 4.5 的。

最佳答案

尝试将 window.onload = refreshProjects(id); 更改为:

window.onload = function() { refreshProjects($("#ddCustomers").val()); };

Onload 需要一个回调函数。您直接执行了 refreshProjects() 并将返回值设置为 onload。

但由于您似乎在使用 jQUery,您可以执行以下操作:

$(function() {
refreshProjects($("#ddCustomers").val());
});

这将在文档准备就绪时执行 refreshProjects(实际上是在窗口加载之前)。

关于javascript - 页面加载时无法调用 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16772671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com