Geliştirdiğimiz bir yazılım parçası için form alanlarıyla bağlanan genel bir yaklaşım yapmaya çalışıyoruz.Form alanında enter tuşunu simüle edin ve diğer işleyicileri de koruyun
Şimdiye kadar çok iyi, ancak başka bir işleyiciye bağlı bir form/alan göndermeyi engelleyen bir kenar durumdayız. İşte
(özet) kullanım durumu var:
HTML:
<form id="form1">
<input type=field id="field1"/>
</form>
<a href="#" id="link">click to submit</a>
Normal davranış, bir kullanıcı, tiplerin alanına 'foo' ve isabet girdiğinizde, form ele ve sunulan olmasıdır formun açılış etiketinde mutlaka tanımlanmış olan doğru 'bitiş noktası'. Bu giriş olayını işleyen bazı işlevler (başka bir yerden) olabilir.
Ne yazık ki, bu işlevin ne olduğunu tahmin edemeyiz, bunu genel olarak tutmayı seviyoruz. Yukarıdaki HTML'de, linke tıklandığında, tarayıcı/kullanıcı davranışını taklit eden ve dolayısıyla bilinmeyen bazı işleyicileri taklit eden form alanında bir enter-event tetiklenmelidir.
Bu (biz jquery kullanıyoruz) bizim Javscript geçerli:
$('#field1').keypress(function (event) {
if (event.which == 13) {
console.log("enter pressed");
//return false; only if needed
}
});
$("#link").click(function() {
var e = jQuery.Event('keypress');
e.which = 13; // #13 = Enter key
$("#field1").focus();
$("#field1").trigger(e);
})
alana 'foo' girilmesi ve presleme form gönderildiğinde alır girin. Ancak bağlantıyı tıkladığımızda, bir odak() yaparız ve ardından anahtar olayını tetikleriz, ancak formu, gönderilmez.
Bilinmeyen işleyiciler nedeniyle bir submit() kullanamıyoruz.
kodu buraya deneyin: http://codepen.io/conversify/pen/yOjQob
Yani hem Enter tuşuna basıp hem de bilinmeyen işleyiciyi çağırmak için bağlantıya tıklamak istiyor musunuz? – Ionian316
Aradığınızı tam olarak anlamadım.Formun, "Enter" u tıklayıp, submit() 'i kullanmadan her tıkladığında gönderilmesini istediğinizi mi söylüyorsunuz? –
Hayır, "göndermek için tıkla" ı tıklamak, formu "giriş" i tıklamak gibi sunmalıdır. 'Foo' doldurmayı ve bağlantıyı tıklamayı deneyin. That 'foo' doldurma ve isabet girme ile aynı etkiye sahip olmalıdır. – unicorn80