私は非常に簡単なフォームがあります。preventDefault()はフォーム全体を無効にするようですか?
<form id="formRegister">
....
<input autocomplete="off" class="form-control input-sm required " id="Code" maxlength="10" name="Code" placeholder="VIP Code" style="width:150px;" type="text" value="">
....
<button id="btnVIPCodeLookup" type="submit" class="button-primary">Submit<i class="icon"></i></button>
</form>
をそしてここにその背後にあるスクリプトです:私はいくつかのブラウザ(特に任意のiOSデバイス、またはエミュレートで見てい
// Landing page form submit
$("#formRegister").submit(function (e) {
e.preventDefault();
var code = $('#Code').val();
vipLookup(code);
});
function vipLookup(code) {
showBusy();
$.getJSON("/EventRegistration/EventRegistrationCodeLookUp", { code: code }, function (data) {
hideBusy();
if (data.Result == "true") {
$('#CodeResultSpan').text('');
$('#EncryptedCode').val(data.EncryptedVIPCode);
ShowLegal();
}
else
{
if (data.Result == "false") {
$('#CodeResultSpan').text('VIP Code not found. Please check the VIP Code you received and try again.');
}
if (data.Result == "used") {
$('#CodeResultSpan').text('VIP Code has been used.');
}
if (data.Result == "error") {
$('#CodeResultSpan').text('There was an error while looking up your VIP Code. Please try again.');
}
if (data.Result == "canceled") {
$('#CodeResultSpan').text('This VIP Code has been canceled.');
}
$('#Code').css('border-bottom', '1px solid #e03e3e');
}
});
}
奇妙なことは、 ChromeのiOSデバイス)では、ボタンをクリックするとフォームが無効になります。私は、テキストボックスに再フォーカスすることはできませんし、もう一度ボタンをクリックすることはできません。
e.preventDefault();
を削除した場合、問題は解決しますが、もちろん、ページが最新表示され、エラーメッセージが消えるという新たな問題が発生します。
あなたはここにこの動作を確認することができます
Chromeを使用してhttp://dev.walkup.audidriveusa.com/EventRegistration
、単なるテキストボックスに何も入力して「送信」をクリックします。メッセージが表示されます。それから(できれば)テキストを変更し、もう一度[送信]をクリックしてみてください。それはあなたを許さない。
もちろんフォームを停止します。ボタンのデフォルトの動作はフォームを送信することです。ボタンのタイプをボタンに変更し、コードの後にjs – ThisGuyHasTwoThumbs