2010-11-08 28 views
6

Bir web formu aracılığıyla bir cgi betiğine sadece bir giriş alanı değeri göndermem gerekiyor.Gönderilecek HTML formu radyo düğmesi değerlerini nasıl hariç tutabilirim?

Seçilen durumlara bağlı olarak giriş değerini değiştiren birkaç ek form denetimi (bir onay kutusu ve radyo düğmesi) ekledim.

Form gönderildiğinde, ek form alanı değerleri de gönderilir ve bu da cgi betiğini (erişimim olmayan) bozar. 'Ad' özelliğini onay kutularından kaldırdım, böylece gönderilmediler, ancak radyo düğmelerinin gruplandırmasını kırarken bunu yapamazlar.

Radyo düğmesi değerlerinin gönderilmesini nasıl önleyebilirim?

cevap

12

jQuery'ye veya normal <form> sunulması yoluyla, bu tefrika engellemek olacaktır submit işleyicisi kendilerine bir disabled özelliğini ekleyebilirsiniz. Örneğin:

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

Yoksa örneğin istediğiniz .serialize() sadece elemanları olabilir:

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

:

İşte jsFiddle ikinci yaklaşım (onsubmit işleyicisi) gösteren bu. Teşekkürler. – pelms

+0

jQuery 1.6+ için, .prop ('disabled', true) olmalıdır. –

0

İki farklı formlar olması da mümkündür: Bunu başarmak için çeşitli yollar vardır. Görünmez form öğelerinize onchange işleyicileri ekleyebilir veya görünmez alanı güncelleştirmek için JavaScript'i çağırabilir veya görünmez değeri doğrudan gönderilmeden önce ayarlamak için onsubmit işleyicisinin bir parçası olarak bir işlevi çalıştırabilirsiniz. iş yaptı http://jsfiddle.net/gtU4J/

İlgili konular