混搭:选择Box / Disabled输入/从数据库获取信息

时间:2012-12-25 17:59:29

标签: javascript python ajax

我正在创建一个表单,人们可以选择一个新团队,然后输入其位置,或者如果他们从列表中选择一个团队,我希望输入被禁用 - 并且所选团队的位置将在输入框。到目前为止这是我的代码。它不起作用。 :(

<select id="chooseTeam" name="chooseTeam" data-placeholder="Select Team">
    <option></option>
    {% for team in teams %}
    <option>{{team.name}}</option>
    {% endfor %}
    <option>New Team</option>
</select>

<input type="text" id="input_location" name="input_location"/>

在单独的JS文件中:

$(document).ready(function() {
    $('#chooseTeam').on('blur', function() {
        if (form.chooseTeam.value != "New Team" && form.chooseTeam.value != "Select Team") {
            $("#input_location").html("{{team.location}}");
            document.getElementById("input_location").disabled = true;
        }
    });
});

MINI-UPDATE

显然,这需要AJAX。我是Javascript(3天大)的新手,所以我不知道AJAX是如何工作的,但我现在正在谷歌搜索它以试图找出它。


哦,圣诞快乐,大家好!

“#代码上圣诞节”

1 个答案:

答案 0 :(得分:1)

您似乎正在使用Django和jQuery。真的吗?我暂时无法给你一个完整详细的答案,但是以下代码中的代码无法正常工作,因为你正在混合客户端代码和服务器端代码。

$("#input_location").html("{{team.location}}");

Django无法评估表达式{{team.location}},因为它只存在于浏览器的客户端。如果您希望Django评估客户端选择的内容,则应使用$.ajax()在服务器和客户端之间使用AJAX调用。

另外,为什么不在所有代码中使用jQuery选择器?做这样的事情:

$(document).ready(function() {
    $('#chooseTeam').on('blur', function() {
        var currentTeam = $(this).val();
        if (!$.inArray(currentTeam, ['New Team', 'Select Team'])) {
            $("#input_location").attr('disabled', 'disabled');
        }
    });
});