Создание нескольких идентификаторов для нескольких кнопок в одном теге <Input>
Я работаю над игрой TicTacToe, используя Django/Djangotemplates, Python и немного Javascript. Я столкнулся с проблемой. У меня есть только одна кнопка, которая перебирается 9 раз. Ее ID - это ее индекс. Теперь я не знаю, как добавить {{index}}, который я определил в цикле for, в функцию javascript onclick.
здесь html шаблон
<div class="grid-container">
{% for index in object.board %}
<div class="grid-item">
<input onclick="change(button.id)" class="buttonsize btn-outline-purple" type="submit" value="" name="button" id="{{index}}">
</div>
{% endfor %}
</div>
</div>
</article>
</form>
<script>
function change(inputid){
console.log("test")
var elem = document.getElementById(inputid);
if (elem.value=="") elem.value = "X"
}
</script>
здесь models.py
class TicTacToe(models.Model):
player1 = models.ForeignKey(User, on_delete=models.CASCADE, default="X", related_name="tictactoe_as_player1")
player2 = models.ForeignKey(User, on_delete=models.CASCADE, default="O", related_name="tictactoe_as_player2")
current_player = models.ForeignKey(User, on_delete=models.CASCADE, related_name="tictactoe_current_player")
title = models.CharField(max_length=100)
board = models.CharField(max_length=9, default="012345678")
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('tictactoe-detail', kwargs={'pk': self.pk})
и вот views.py
class TicTacToeCreateView(LoginRequiredMixin, CreateView):
model = TicTacToe
template_name = 'website/newgame_form.html'
fields = ['player1', 'player2', 'current_player', 'title', 'board']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
class TicTacToeDetailView(UpdateView):
model = TicTacToe
fields = ['player1', 'player2', 'current_player', 'title', 'board']
def clean(self):
if 'button0' in self.data:
print('button0')
У меня также есть база данных, но в ней мало что есть, кроме идентификаторов игроков
Добавление индекса в onclick должно быть ОК
<input onclick="change({{index}})" class="buttonsize btn-outline-purple" type="submit" value="" name="button" id="{{index}}">