gpt4 book ai didi

javascript - 如何修改此脚本,使其在页面首次加载和更改时起作用?

转载 作者:行者123 更新时间:2023-12-02 22:22:04 27 4
gpt4 key购买 nike

我有一个加载依赖下拉选项的脚本。我添加了一个部分,只要没有可用的选项,依赖的下拉菜单就会隐藏。主下拉列表在提交后会保留最新的提交数据,但是当您提交辅助下拉列表中没有选项的选项时,并且页面重新加载时,主下拉列表中会出现没有辅助下拉选项的选项选项显示,还有辅助下拉列表,当您单击它时,它只是空的,因为检查是否应该隐藏它的逻辑仅检查主下拉列表何时发生更改。如何在最后更改此脚本,以便它在开始时和发生更改时加载?

enter_exit_area.html

{% extends "base.html" %}

{% load core_tags staticfiles %}

{% block main %}

<form id="warehouseForm" action="" method="POST" data-stations-url="{% url 'operations:ajax_load_stations' %}" novalidate >
{% csrf_token %}


<div>
<div>
<label>Employee #</label>
{{ form.employee_number }}

</div>

<div>
<label>Work Area</label>
{{ form.work_area }}
</div>
<div id="my-hidden-div">
<label>Station</label>
{{ form.station_number }}
</div>
</div>

<div>
<div>
<button type="submit" name="enter_area" value="Enter">Enter Area</button>
<button type="submit" name="leave_area" value="Leave">Exit Area</button>
</div>
</div>
</form>

<script>
$("#id_work_area").change(function () {
var url = $("#warehouseForm").attr("data-stations-url");
var workAreaId = $(this).val();
var $stationNumberField = $("#{{ form.station_number.id_for_label }}");

$.ajax({
url: url,
data: {
'work_area': workAreaId
},
success: function (data) {
$("#my-hidden-div").show(); // show it
$stationNumberField.html(data);
// Check the length of the options child elements of the select
if ($stationNumberField.find("option").length === 1) {
$stationNumberField.parent().hide(); // Hide parent of the select node
} else {
// If any option, ensure the select is shown
$stationNumberField.parent().show();
}
}
});
});
</script>

{% endblock main %}

更新:

进行了更改,现在脚本看起来像这样,但是,我收到此错误,阻止它加载,可能是什么原因导致的?

function loadStations() {
var url = $("#warehouseForm").attr("data-stations-url");
var workAreaId = $(this).val();
var $stationNumberField = $("#{{ form.station_number.id_for_label }}");

$.ajax({
url: url,
data: {
'work_area': workAreaId
},
success: function (data) {
$("#my-hidden-div").show(); // show it
$stationNumberField.html(data);
// Check the length of the options child elements of the select
if ($stationNumberField.find("option").length === 1) {
$stationNumberField.parent().hide(); // Hide parent of the select node
} else {
// If any option, ensure the select is shown
$stationNumberField.parent().show();
}
}
});
}
$("#id_work_area").change(loadStations());
$(document).ready(loadStations());
jquery.js:4 Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
at m.fn.init.val (jquery.js:4)
at loadStations ((index):124)
at (index):145

最佳答案

尝试将函数代码放入单独的函数中,所以...

function someFunction() {
var url = $("#...
}

然后添加两个事件监听器...

$("#id_work_area").change(someFunction);
$(document).ready(someFunction);

关于javascript - 如何修改此脚本,使其在页面首次加载和更改时起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59199299/

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