为什么没有提交输入[]

Why the input [] is not submitted?

本文关键字:输入 提交 为什么      更新时间:2023-09-26

我有这些复选框:

<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.p preventdefault ();

一个元素不能有两个name属性。它们相互冲突,您最终会用另一个覆盖其中一个。

您的输入中有两次name属性

就像已经说过的那样,你有两个名字,所以我建议把一个名字改成像这样的一个类

<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>

尝试——

<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>