大家好。
<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代码中添加两个变量。以及如何找到需要的数据。
它没有显示我的选择文字。我需要新的$(document).ready(function ()
,对吗?或不?
我希望你能帮助我。
谢谢。
答案 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
}
});
}
现在,在服务器端代码中,您可以检查senderId
和val
参数,并将相应的响应发送回客户端。