düğme tipi değer IE ve de farklılaştıran bir

4 Cevap php

Ben aşağıda gösterilen bir düğme türünü içeren bir form kullanıyorum:

<form method="post" action="">
<button type=submit value="hello" name="submitform">World</button>
</form>

İşte düğme tipi farklı tarayıcılarda farklı davranış gösterir

şimdi print_r($_POST) görüntü

Array
(
    [submitform] => World
)
 In IE(v 7.0) 

oysa

Array
(
    [submitform] => Hello
)
in FF(v 3.5) 

Why does it display different value... now my questions are:

  1. I [submitform]=Hello hem tarayıcı ve ben değerini <button> arasında 'Dünya' dışında değiştirmek istemiyorum istiyorum

  2. Is <button type="submit"> veya <input type="submit"> daha iyi

4 Cevap

Sen gizli bir giriş alanı ile düğmenin bilgileri yerine olabilir:

<form method="post" action="">
  <button type="submit">World</button>
  <input type="hidden" name="submitform" value="hello" />
</form>

Bu browserquirks yöntem tasarruf olduğunu.

Bir başka olasılık, yol daha az zarif olsa da, bir resim kullanmak için:

<form method="post" action="">
  <input type="image" src="my_World_image.gif" name="submitform" value="hello" />
</form>

Avantajı: Farklı değerleri submiting birden gönderebilirsiniz düğmeleri olabilir.

Dezavantajı: David Dorward belirtildiği gibi, muhtemelen çünkü adamcağız uygulamaları, yani IE adlı yine aynı sorunla karşı karşıya gelecek.

Üçüncü olasılık JavaScript, ama (ben seni uyardı!) Onu devre dışı olan kullanıcılar için sorun her türlü karşılaşacak:

<input type="hidden" name="submitform" value="" id="changeme" />
<button type="button" onclick="do_submission('hello')">Submit Hello</button>
<button type="button" onclick="do_submission('world')">Submit World</button>

<script type="text/javascript">
function do_submission(value) {
  document.getElementById('changeme').value = value;
  document.getElementsByTagName('form')[0].submit();
}
</script>

Ben her zaman kullanabilirsiniz <input type="submit" value="Whatever I want the button label to be" /> ve o güzel çalıştı.

Eh ile button Eğer rasgele metin veya düğmenin içindeki görüntüleri olabilir. Bu input afaik ile mümkün değildir. Değeri de her zaman düğmeler metindir.

IE bu garip davranışı varsa o zaman düğmenin değerini korumak için başka bir seçenek olarak ve içindeki metni var gibi görünüyor (input yaptığını tam olarak ne olduğu) aynı.

<button> korkunç MSIE bozuldu. <input type="submit"> Eğer etiket değerine farklı olmak zorunda izin vermez.

Civarında eser daha sonra, <input type="submit"> kullanmak ve her biri benzersiz bir ad vermek için search to find which one was successful.