Nasıl klavye düğmesini tıklayarak bir web formu gönderebilirsiniz?

5 Cevap php
<form action="page.php" method="post">
    <input type="text" name="some_text" />
    <input type="submit" name="some_submit" /
</form>

Ben tanımlı klavye tuşuna basarak bu formu göndermek istiyorum. Ben bunu merak ediyorum. Bu sadece bir <a> elemanı olsaydı o basit olurdu - Ben sadece basışı olayı dokunduktan sonra window.location değerini değiştirmek istiyorsunuz. Ama bazı veri göndermek ve bu çözmek için nasıl hiçbir fikrim yok.

5 Cevap

Sen alıcı sayfa "page.php" tüm form verilerini geçmek için onun submit() yöntemini kullanarak formu gönderdikten sonra, bir tuşa basma olayı için bir olay işleyicisi oluşturabilirsiniz.

Kullanımı jQuery, bu önemsiz:

<form id="myForm" action="page.php" method="post">
    <input type="text" name="some_text" />
    <input type="submit" name="some_submit" />
</form>

<script type="text/javascript">

    $('#myForm").keyDown(function(e){

        if(e.which == 13) // When key pressed is "Enter" key.
            $('#myForm').submit();

    });

</script>

Javascript Madness: Keyboard Events klavye olayları yorumlama hakkında daha fazla bilgi için okuyun.

Veriler (form.submit bir sonucu olarak otomatik olarak geçirilecek)

Forma bir isim verin

<form name="myform" action="page.php" method="post">

Tuşa basın olay yapmak dokunduktan sonra

document.myform.submit()

temelde formu göndermek hangi. Buna daha fazla parametre eklemek istiyorsanız formun içine gizlenmiş unsurları olarak bu ekleyin.

Anahtar basın kullanımı bir örnek için bkz: http://dev.kanngard.net/Permalinks/ID%5F20050426091851.html - Kilit 13 (Enter) tuşuna basıldığında ise bir form gönderdiğinde, ancak herhangi bir diğer anahtarı için modifiye edilebilir.

Genel olarak: basıldığında hangi tuşa kontrol fonksiyonu içerisine, KeyDown olayı çağrılacak bir işlev kayıt; gerekirse, teslim () form.

Ben belada:

function action(button) {
if ($('a.'+button+':visible').length > 0) {
	if ($('a.'+button+':visible').attr('class') == button || $('a.'+button+':visible').attr('class') == 'rotate '+button) {
		var adr = $('a.'+button+':visible').attr('href');
		window.location = adr;
	}
	if ($('a.'+button+':visible').attr('class') != button) {
		$('a.'+button+':visible').click();
	}
}
	if ($('input.'+button+':visible').length > 0) {
		$('#form').submit();
	}
}

Değişken 'düğmesi' Nerede düğmenin classname ve # form formun id. Tıklayarak normal çalışıyor göndermek, ancak klavye olay ile çalışmıyor.