2011-12-23 46 views
2

我有一個select與一些options。但是這個選擇部分並不總是顯示。只有當用戶點擊了另一個元素時纔會顯示。如果用戶提交的表單比select的默認值(第一個條目)也被提交。我如何清除選擇值?清除選擇或操作POST值

$('#ExpM').val('')也與此試了一下:

$('#Form').submit(function() { 
     if (!$('#radio_dump').is(':checked')){ 
      $('#ExpM').selectedIndex=-1; 
      $('#ExpY').selectedIndex=-1; 
     } 
    }); 

但值在帖子還發出。這些值不是必需的。我能做什麼?

+1

有一個隱藏字段,則當選項會顯示更新這個隱藏字段...然後在PHP檢查的隱藏字段的值 - 如果將其設置只是忽略選擇元素 – ManseUK 2011-12-23 15:59:05

+1

數據我總是添加一個空白的第一選擇我的選擇 – Galen 2011-12-23 15:59:52

+0

@Galen這是正確的事情。 – 2011-12-23 16:02:03

回答

1
foreach($_POST as $key => $value) 
if (empty($value)) unset($_POST[$key]); 
+0

這個代碼應該放在哪裏?使用'unset'變量應該被清除。這是否意味着我無法在Firebug中看到它們? – testing 2011-12-23 16:10:06

+0

這是PHP代碼,螢火蟲看不到服務器端的值......這將刪除從PHP $ _POST數組爲空值,則應該在選擇這樣的'第一個選項<期權價值=「」>空缺'。 – 2011-12-23 16:13:18

+0

目前,我將表單的值發送到生成值的相同腳本。如果我使用'print_r($ _POST);'我可以看到數組中的參數。另外在Firebug中,我看到了POST參數。我已將PHP代碼放在腳本的末尾。一定不要在提交事件或類似的事情?我已經添加了Galen提出的空白選項字段。 – testing 2011-12-23 16:19:17

6

試試這個:

$('#Form').submit(function() { 
    if (!$('#radio_dump').is(':checked')){ 
     $('#ExpM').attr('name',''); 
     $('#ExpY').attr('name',''); 
    } 
}); 

基本上,name空白所以沒有對被髮送。

0

這是一些想法而已,如果它解決您的問題,我還沒有測試:

殘疾人表單控件沒有提交。你可以禁用那些不應該提交的表單控件,這樣你就不用再擔心任何項目被選中了。

參見Disabled and read-only controlsHTML4

我很確定jQuery有東西可以禁用表單字段,請參閱jQuery - Disable Form Fields