IE 6 ve birden çok düğme unsurlar kendi adını gönderme ve

3 Cevap javascript

Bir formda birden çok düğme elemanını kullanarak, I IE7 düğme yerine değerinin innerHTML gönderir fark etti. Ben düşündüm tüm iyi, ben sadece bu benim PHP kodu değiştirmek gerekir

<?php

if (isset($_POST['button-name'])) {
   add_product_to_cart(2);
}

?>

Şimdi benim eski arkadaşım IE6 bir sıkıntı olmaktan biraz adım daha ileri gidiyor. O ne olursa olsun hangi I tıklatın biri düğmeye tüm öğeleri gönderir. Örneğin, 'yakın-nane' nane 'adlı 3 düğme elemanları var & 'Standart'. A print_r($_POST) 3 isimler teslim edildiğini söyledi hızlı.

Bu bazı JavaScript değil, en zarif durum olacaktır giderilmesi için sanırım, ama ben hala IE6 kullanan ortalama bir kullanıcı JavaScript kapatmak için yeterince parlak olmadığını hayal edebiliyorum.

Bunu nasıl telafi edebilirim?

3 Cevap

I http://www.codecomments.com/JavaScript/message756646.html bir çözüm bulundu

Bu sayfada yazara tüm kredi.

Istek başına, burada kodu

function buttonfix(){
var buttons = document.getElementsByTagName('button');
for (var i=0; i<buttons.length; i++) {
buttons[i].onclick = function () {
for(j=0; j<this.form.elements.length; j++)
if( this.form.elements[j].tagName == 'BUTTON' )
this.form.elements[j].disabled = true;
this.disabled=false;
}
}
}
window.attachEvent("onload", buttonfix);

Bu, Internet Explorer'daki bilinen bir hatadır.

http://www.dev-archive.net/articles/forms/multiple-submit-buttons.html JavaScript bağlı değildir geçici bir çözüm anlatılmaktadır.

Bu aşağı kaynar "Kullanım <input> ve etiketler için basit bir metin başka bir şeye ihtiyacınız için düğmelerini tasarım yok".

Bir çözüm bulma in <input type="button"> ve <input type="submit"> kullanmak yerine <button type="button"> ve <button> etmektir.

Update: Eğer aşağıdaki seçici ile jQuery kullanarak onları bulmak mümkün olmalıdır input unsurları için button öğeleri değiştirebilir eğer:

var buttons = $('input[type=submit], input[type=button]');