【问题标题】:Mashup: Select Box / Disabled Input / Getting Info From Database混搭:选择框/禁用输入/从数据库获取信息
【发布时间】:2012-12-25 17:59:29
【问题描述】:

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

<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;
        }
    });
});

迷你更新

显然,为此需要 AJAX。我是 Javascript 的新手(3 天前),所以我还不知道 AJAX 是如何工作的,但我现在正在谷歌上搜索它以试图弄清楚。


哦,祝大家圣诞快乐!

“#code-on-christmas”

【问题讨论】:

  • 是完整的 javascript 代码,还是封装在事件处理程序的函数中?
  • 感谢我更新它的提示。

标签: javascript python ajax


【解决方案1】:

看来您正在使用 Django 和 jQuery。真的吗?目前我不能给你一个完整的答案,但是下一行中的代码不能工作,因为你正在混合客户端和服务器端代码。

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

表达式 {{team.location}} 不能被 Django 求值,因为它只存在于浏览器的客户端。如果您希望 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');
        }
    });
});

【讨论】:

  • 从技术上讲,Flask 和 jQuery,但在这种情况下,Flask 和 Django 并没有太大区别。我实际上是 Javascript 的新手——3 天前开始学习它——但我会尝试 $.ajax()
  • 是的,我应该对所有事情都使用 JQuery - 对 JS 来说还是新手 - 所以有时我会混合并混合我的 JS 和 JQuery 哈哈。
  • @JoseBazBaz 我对它也很陌生。 jQuery 的文档可能会更好,所以我也需要一些时间来了解它。但是一旦它“点击”它就很容易了。 :)
  • 我有一个想法——我想我可能只用纯 Flask(在这种情况下类似于 Django)和 HTML 就能获得相同的效果
  • @JoseBazBaz 我没有使用 Flask 的经验,但是您希望在不重新加载页面的情况下动态更新 UI 的一部分,对吧?在这种情况下,您需要 JavaScript / jQuery。但也许我没有得到你想要的。
猜你喜欢
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 2012-10-31
  • 1970-01-01
  • 2021-10-21
相关资源
最近更新 更多