2011-05-02 83 views
2

我有這些複選框:爲什麼輸入[]沒有提交?

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

但實際上它並不向服務器發送的樣式[]數組trought形式。爲什麼?我該如何解決這個問題?嘗試刪除e.preventDefault();但沒有任何變化...

+3

爲什麼你的輸入有兩個'name's? – 2011-05-02 19:36:03

+1

等待,您正在偵聽複選框上的「點擊」,*阻止默認操作*並提交表單?不會阻止該默認操作*停止選中以*開頭的複選框?也許這些應該是提交按鈕開始... – Charles 2011-05-02 19:41:19

+0

@Charles:我不明白你是什麼意思? – kwichz 2011-05-02 19:46:42

回答

2

嘗試 -

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

在一個元素上不能有兩個name屬性。它們發生衝突,最後你會相互覆蓋。

3

您在輸入上有兩次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>