Почему не отправляется ввод []?

#php #javascript #jquery

#php #javascript #jquery

Вопрос:

У меня есть эти флажки :

 <input name="linkStyle" type="checkbox" name="style[]" value="Style1" />
<input name="linkStyle" type="checkbox" name="style[]" value="Style2" />
<input name="linkStyle" type="checkbox" name="style[]" value="Style3" />
  

и эта функция jQuery :

 <script type="text/javascript">
    $(document).ready(function() {
        $('input[name=linkStyle]').click(function(e) {
            e.preventDefault();
            $('#browseForm').submit(); 
        });                 
    });
</script>
  

но на самом деле он не отправляет на сервер массив style[] в форме. Почему? И как я могу исправить эту проблему? Пробовал также удалить e.preventDefault(); но ничего не изменилось…

Комментарии:

1. Почему у вашего ввода два name s?

2. Подождите, вы прослушиваете click s в флажках, предотвращая действие по умолчанию и отправляя форму? Разве предотвращение этого действия по умолчанию не остановило бы установку флажка для начала ? Возможно, для начала это должны быть кнопки отправки…

3. @Charles : Я не понимаю, что ты имеешь в виду?

4. вам действительно следует запустить ваш HTML-код через средство проверки.

5. Да, я знаю… но для такого рода я предпочитаю этот способ 🙂 Спасибо за советы!

Ответ №1:

У вас не может быть двух name атрибутов для одного элемента. Они конфликтуют, и в конечном итоге вы перезаписываете одно другим.

Ответ №2:

У вас есть name атрибут дважды на ваших входных данных.

Ответ №3:

как было указано, у вас есть два имени, поэтому я бы предложил изменить одно имя на класс, подобный этому

 <input class="linkStyle" type="checkbox" name="style[]" value="Style1" />
<input class="linkStyle" type="checkbox" name="style[]" value="Style2" />
<input class="linkStyle" type="checkbox" name="style[]" value="Style3" />
  

затем вы можете настроить таргетинг на класс

 <script type="text/javascript">
    $(document).ready(function() {
        $('.linkStyle').click(function(e) {
            e.preventDefault();
            $('#browseForm').submit(); 
        });                 
    });
</script>
  

Ответ №4:

Попробуйте —

HTML

 <input class="linkStyle" type="checkbox" name="style[]" value="Style1" />
<input class="linkStyle" type="checkbox" name="style[]" value="Style2" />
<input class="linkStyle" type="checkbox" name="style[]" value="Style3" />
  

jQuery

 <script type="text/javascript">
    $(document).ready(function() {
        $('.linkStyle').click(function(e) {
            e.preventDefault();
            $('#browseForm').submit(); 
        });
    });
</script>