我正在创建一个表单,人们可以选择一个新团队,然后输入其位置,或者如果他们从列表中选择一个团队,我希望输入被禁用 - 并且所选团队的位置将在输入框。到目前为止这是我的代码。它不起作用。 :(
<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是如何工作的,但我现在正在谷歌搜索它以试图找出它。
哦,圣诞快乐,大家好!
“#代码上圣诞节”
答案 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');
}
});
});