如何在ajax中添加新变量

时间:2018-05-18 10:50:37

标签: jquery ajax frontend

大家好。

    <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#id_name_task").change(function () {
                var name_task = $(this).val();
                $.ajax({
                    type: 'GET',
                    async: true,
                    dataType: 'json',
                    url: '{% url "validate_data" %}',
                    data: {
                        'name_task': name_task,
                    },
                    success: function (data) {
                        if (data.is_taken) {
                            alert("A task with this name already exists.");
                        }

                    },
                });
            });
        });
    </script>

代码 - 它检查字段,如果数据库中有这样的数据,则显示窗口警报。 我想查看另一个字段。

    <p><label for="id_category_task">Category task:</label> <select
            name="category_task" required="" id="id_category_task">
        <option value="" selected="">---------</option>

        <option value="1">One</option>

        <option value="2">Two</option>

        <option value="3">Three</option>

    </select></p>

例如,用户点击“One”,我想获得数据。 但我不明白如何在jquery代码中添加两个变量。以及如何找到需要的数据。 enter image description here

它没有显示我的选择文字。我需要新的$(document).ready(function (),对吗?或不? 我希望你能帮助我。 谢谢。

1 个答案:

答案 0 :(得分:1)

假设您有多个select元素:

<select id="id_name_task" class="combo">...</select>
<select id="id_category_task" class="combo">...</select>

您可以向.combo类注册事件监听器并执行相应的操作:

$(document).on('change', '.combo', function(e) {
    callAjax($(e.currentTarget);)
});

function callAjax(sender) {
    var senderId = sender.attr('id');
    var val = sender.val();
    $.ajax(function() {
        method: 'POST',
        url: '...',
        data: { senderId: senderId, val: val },
        success: function(data) {
            // Handle data
        },
        error: function() {
            // Handle error
        }
    });
}

现在,在服务器端代码中,您可以检查senderIdval参数,并将相应的响应发送回客户端。