2013-11-03 17 views
0

我有主要類別和子類別的產品,當我選擇任何主要類別它顯示相關的子類別。但是,當我發佈表單時,會發布最後的子類別值而不是所選的子類別值。<select>當style =「display:none;」時標記發佈所有數據

JavaScript代碼

$(function() { 
    $('#category').change(function(){ 
     $('.sub-category').hide(); 
     $('#' + $(this).val()).show(); 
    }); 
}); 

HTML代碼

<Select id="category" name="product_category"> 
    <option value="eco">Main Category 1</option> 
<option value="organic">Main Category 2</option> 
    </Select> 

    <Select name="product_sub" id="eco" class="sub-category"> 
    <option value="eco1">Sub Category 1</option> 
    <option value="eco2">Sub Category 2</option> 
    </Select> 

<Select id="organic" name="product_sub" class="sub-category" style="display:none;width:270px;"> 
    <option value="organic1">Sub Category 3</option> 
    <option value="organic2">Sub Category 4</option> 
</Select> 

例如:當我選擇子類1,子類在郵寄價值3

回答

5

所有成功表單字段提交給服務器。 CSS display不影響表單字段是否被視爲成功。 The HTML spec defines what makes a control successful.

成功的控件對提交「有效」。每個成功的 控件都將其控件名稱與其當前值配對,作爲提交的表單數據集的一部分 。必須在FORM元素中定義成功的控件 ,並且必須具有控件名稱。

但是:

  • 控件被禁用不能成功。
  • 如果表單包含多個提交按鈕,則只有激活的提交按鈕成功。
  • 所有「打開」複選框可能會成功。
  • 對於共享名稱屬性相同值的單選按鈕,只有「開」單選按鈕可能會成功。
  • 對於菜單,控件名稱由SELECT元素提供,值由OPTION元素提供。只有選定的選項可以是 成功。如果未選擇任何選項,則控件不會成功 ,並且在提交表單時,名稱或任何值都不會提交給 服務器。
  • 文件選擇的當前值是一個或多個文件名的列表。在提交表格後,每個文件的內容均爲 ,並與表格數據的其餘部分一起提交。文件內容是根據表單的內容類型打包的 。
  • 對象控件的當前值由對象的實現決定。

如果控件在提交表單時沒有當前值,則不需要用戶代理將其視爲成功的控件。

此外,用戶代理不應該考慮以下控件 成功:

  • 復位按鈕。
  • 其聲明屬性已設置的OBJECT元素。

由於樣式 表單樣式設置的隱藏控件和控件可能仍然成功。

Disable您不希望提交的表單字段。

$('#category').change(function(){ 
    $('.sub-category').hide().prop('disabled', true); 
    $('#' + $(this).val()).show().prop('disabled', false); 
}); 
+0

解決此問題的任何解決方案,以便它只發布選定的字段。 –

+0

@AkashSharma:[Disable](http://stackoverflow.com/a/1414366/201952)你不想提交的表單域。 – josh3736

+0

其工作表示感謝 –

相關問題