2010-11-08 65 views
6

我需要通過一個web窗體向cgi腳本提交一個輸入字段值。如何排除提交的HTML表單單選按鈕值?

我已經添加了一些額外的表單控件(複選框和單選按鈕),它們根據所選狀態操縱輸入值。

當提交表單時,額外的表單字段值也會被提交,這會破壞cgi腳本(我無權訪問)。我從複選框中刪除了'name'屬性,因此它們沒有被提交,但是無法爲單選按鈕執行此操作,因爲它會打斷它們的分組。

如何防止提交單選按鈕值?

回答

12

您可以在submit處理程序中爲它們添加disabled屬性,這可以防止它們被jQuery或正常的<form>提交序列化。例如:

$("#myForm").submit(function() { 
    $(this).find(":radio, :checkbox").attr("disabled", true); 
}); 

或者你也可以.serialize()只有你想要的元素,例如:

$.post("myPage.cgi", $("#myForm input[type=text]").serialize()); 
+0

也做了工作。謝謝。 – pelms 2010-11-08 16:25:22

+0

對於jQuery 1.6+,它應該是'.prop('disabled',true)'。 – 2014-03-12 12:25:02

0

也可以有兩種不同的形式:一個有可見的形式元素和一種具有隱藏input表示要提交的最終結果。您可以將onchange處理程序附加到可見表單元素,以便它們調用某個JavaScript來更新不可見字段,或者可以作爲onsubmit處理程序的一部分運行函數,以便在提交之前直接設置不可見值。

這裏有一個展示的jsfiddle第二種方法(該onsubmit處理程序):http://jsfiddle.net/gtU4J/