Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当页面加载时发生空请求时,如何防止500 GET错误?_Javascript_Python_Html_Django_Ajax - Fatal编程技术网

Javascript 当页面加载时发生空请求时,如何防止500 GET错误?

Javascript 当页面加载时发生空请求时,如何防止500 GET错误?,javascript,python,html,django,ajax,Javascript,Python,Html,Django,Ajax,我有一个表单,它有一个相关的下拉列表,每当提交表单时都会加载该表单,以便在表单提交之前选择的主选项在提交之后再次预加载。我注意到每当第一次加载页面时,如果没有传递参数,就会出现get:500内部服务器错误,错误如下: Internal Server Error: /operations/ajax/load-stations/ ValueError at /operations/ajax/load-stations/ invalid literal for int() with base 10:

我有一个表单,它有一个相关的下拉列表,每当提交表单时都会加载该表单,以便在表单提交之前选择的主选项在提交之后再次预加载。我注意到每当第一次加载页面时,如果没有传递参数,就会出现
get:500内部服务器错误
,错误如下:

Internal Server Error: /operations/ajax/load-stations/

ValueError at /operations/ajax/load-stations/ invalid literal for int() with base 10: ''


Request URL: http://localhost:8000/operations/ajax/load-stations/?work_area=
Request Method: GET
Status Code: 500 Internal Server Error
因为第一次加载页面时,工作区为空(工作区=”),并且尚未提交表单。如何修改JS或函数以避免出现此错误

输入\退出.html

{% 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>
<!-- Rest of the form -->
        </div>

    </form>

    <script>
        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);
        $("#id_work_area").change();
     </script>

{% endblock main %}
url.py

def load_stations(request):
    work_area_id = request.GET.get('work_area')
    stations = Station.objects.filter(work_area_id=work_area_id).order_by('name')
    return render(request, 'operations/station_number_dropdown_options.html', {'stations': stations})
urlpatterns = [
    url(r'enter-exit-area/$', views.enter_exit_area, name='enter_exit_area'),

    url(r'ajax/load-stations/$', views.load_stations, name='ajax_load_stations'),
]

最简单的方法是在启动AJAX请求之前测试
work\u area
的值:

 if (workAreaId !== "") {
        $.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();
                }
            }
        });
}

最简单的方法是在启动AJAX请求之前测试
work\u area
的值:

 if (workAreaId !== "") {
        $.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();
                }
            }
        });
}

你试过if语句吗?如果不满足某个条件,则不运行某些代码是编程中一个相当基本的核心概念。您是否尝试过if语句?如果不满足某个条件,则不运行某些代码是编程中一个相当基本的核心概念。