Tag: preventdefault

在preventDefault之后无法提交

我使用脚本进行表单validation(validationEngine)和脚本进行文件上传(uploadify)。 为了最好地管理我的表单提交: validationEngine检测我的表单是否可以发送。 如果我可以提交,我上传我的文件 完成所有上传的文件( onQueueComplete uploadify)后,我提交表单。 如果我发出alert(‘foo’); 在我的onQueueComplete中,它有效。 但是,如果我提交我的selector.submit() ……没有任何反应。 $(function() { $(‘#file_upload’).uploadify({ ‘fileSizeLimit’ : ‘2048KB’, ‘auto’: false, ‘swf’ : ”, ‘uploader’ : ”, ‘buttonText’ : ‘Ajouter…’, ‘method’ : ‘post’, ‘formData’ : {‘userMail’ : ”}, ‘onQueueComplete’ : function(queueData) { $(‘#validator’).submit(); } }); }); $(document).ready(function() { $(“#validator”).validationEngine(); $(‘#validator’).submit(function(event){ event.preventDefault(); var canSubmit = $(“#validator”).validationEngine(‘validate’); if(canSubmit) { […]

如果焦点不在提交按钮上,则表单不应在输入时提交

我有一个要求,即如果他按下回车键,用户就无法提交表格,除非重点放在提交按钮上。 使用下面的代码,我能够做到这一点,但现在的问题是,如果我有任何特定于任何字段的输入键事件(例如,如果我想将一个特殊要求的输入键事件附加到一个文本字段),它是因为我在下面写的脚本而不允许我.. $(document).keydown(function(event) { if (event.keyCode == 13) { var $focusedItem = $(document.activeElement); if($focusedItem.is(“button”) || $focusedItem.is(“a”) || $focusedItem.attr(“type”) == “submit”) { $focusedItem.click(); } else { event.preventDefault(); } } }); 我可以限制用户在按下回车键时提交表单的任何解决方案,如果焦点不在提交按钮上,但同时如果任何表单字段附加任何回车键事件,那也应该有效。

正确的方法来设置一系列同步/异步function,所有这些function都可以停止表单提交和进一步处理?

我需要在表单提交按钮上依次调用一些函数 – func1() – > func2() – > func3()… – > func7() – > … 所有这些函数都进行某种validation/检查,如果validation失败,则向用户显示确认对话框。 如果用户确认,则执行队列中的下一个function。 这些函数中的任何一个都可以执行一些异步任务,例如发送Ajax请求,并根据结果向用户显示一些确认对话框。 细节 我有以下结构的异步函数 – function preValidateUrls(evt) { evt.preventDefault(); $.ajax({ type: “POST”, url: posturl+”?”+params, dataType: “json”, success: function(res) { //display some confirmation dialog if(confirm(msg)) { $(“form#frmBanners”).submit(); } } }); } 我该怎么做呢? 首先,我只有两个同步函数定义如下 – … … 首先调用func1(),显示确认对话框,然后是func2()… 然后我定义了异步函数func2()(具有与上面相同的结构)并像这样调用它 – $( […]

防止从触发按钮输入键

我有一个搜索输入框,当用户按下输入时无需任何操作。 我正在使用EmberJS和Jquery以及下面的代码。 目前它可以禁止弹出窗口被触发但由于某些原因在IE9中按下输入时切换按钮变为焦点。 适用于Chrome。 我已经尝试过tabindex和preventDefault,但这两种方法都没有。 if ($el.hasClass(‘form-control’)) { if ( e.which == 13) { this.get(‘controller’).flipit(); } } 谢谢。 编辑 – – – 这是我的页面的片段。 当用户在搜索框中按Enter键时,右侧的按钮将突出显示。 我该如何防止这种情况?

sweetAlert preventDefault并返回true

我试过了sweeAlert插件,它运行得很好,但是在确认后我无法弄清楚如何做默认的东西。 $(document).ready(function () { function handleDelete(e){ e.preventDefault(); swal({ title: “Are you sure?”, text: “You will not be able to recover the delaer again!”, type: “warning”, showCancelButton: true, confirmButtonColor: “#DD6B55”, confirmButtonText: “Yes, delete!”, closeOnConfirm: false }, function (isConfirm) { if (isConfirm) { return true; } }); }; }); 和按钮 id_dealers}” class=”delete” onclick”handleDelete(event);”>  //https://stackoverflow.com/questions/30418718/sweetalert-preventdefault-and-return-true/{plink delete! $row->id_dealers} Nette […]

jQuery preventDefault()在AJAX调用中不起作用

所以,当用户输入电子邮件以查看电子邮件是否存在时,我正在检查。 $(‘form.recover-form#check-form’).on(‘submit’, function(e){ var form = $(this), input = $(‘.check-recover-email’), span = $(‘.recover-error’), email = input.val(); span.text(”); e.preventDefault(); $.ajax({ url: ‘ajax/check-email’, async: ‘false’, cache: ‘false’, type: ‘POST’, data: {email: email}, success: function(response) { if ( response == ‘no’ ) { span.text(’email does not exist’); } else if ( response == ‘ok’ ) { form.submit(); } […]

preventDefault()不能处理Firefox 9.0.1中的SELECT元素

我意识到还有其他一些关于preventDefault()无法使用Firefox的问题,但是他们没有帮助我。 我有三个SELECT列表,我想要的是使用箭头键在它们之间导航而不更改任何值 。 该代码在Chrome中运行良好,但在Firefox中,它会移动焦点,然后更改刚刚移动到的元素的值。 JavaScript的: $(document).ready(function () { $(‘.myinput’).keydown(function (evt) { onkeydown(evt); }); $(‘.myinput:first’).focus(); }); function onkeydown(evt) { evt.preventDefault(); console.log(evt.which); if(evt.which == 39) { $(document.activeElement).next().focus(); } else if(evt.which == 37) { $(document.activeElement).prev().focus(); } } HTML: One Two Three One Two Three One Two Three

如何在表单的submit事件监听器中放置一个回调来等待用户对jquery即兴提示的响应?

这是我想做的 – 当用户单击主窗体的提交按钮时,显示提示(使用jquery的即兴)。 提示再次是一个具有密码字段和“确定”和“取消”按钮的表单。 当用户点击确定时,将发布主窗体(连同密码值,附加到主窗体)。 如果用户单击“取消”,则不会提交表单。 细节 我之前问了一个问题 – 在使用即兴function阻止正常提交后,jquery表单submit()在回调函数内部无效 并能够使用javascript的原生提示方法成功实现我想要的东西。 但我想用jquery的即兴插件做同样的事情。 这是使用本机javascript提示符的工作代码 – $(‘#frmAddAdnetworkTemplate’).submit(function(event){ promptText = “Password required”; postedPassword = prompt(promptText); if(postedPassword) { $(“form#frmAddAdnetworkTemplate”).find(“input#manage_adnetwork_password”).val(postedPassword); } else { event.preventDefault(); } }); 这是我到目前为止使用即兴的代码 – $(‘#frmAddAdnetworkTemplate’).submit(callBackSubmit); function callBackSubmit(event){ $.prompt(passwordForm,{ buttons: { Ok: true, Cancel: function(){event.preventDefault(); } }, submit: submitPasswordPrompt}); //how do I call event.preventDefault(); when user cancel’s. […]

e.preventDefault()不是防弹?

我问了一个类似的问题,但没有得到真正令人满意的答案,所以我会在这里再试一次。 当我使用这样的代码时: $(“#element”) .on( ‘click’, function() { // do something } ) .on( ‘touchstart’, function(e) { e.preventDefault(); // do the same thing but on touch device like iPad fe // and more over PLEASE do not fire the click event also! } ); 我期望click事件永远不会永远不会被触发(因为浏览器应该通过事件处理层次结构)但实际上当我触摸元素时,让我们说20次,而不是一次点击事件也会触发。 为什么? 我也尝试过这样的事情: $(“#element”) .on( ‘click’, function() { // do something } […]

undo preventDefault()或以编程方式禁用链接集合的更好方法

我有一个页面,其中包含网络状态的事件侦听器。 当网络“离线”时,我想禁用任何跨域链接以进入离线模式。 我试图使用.preventDefault() ,但是当应用程序重新联机时,我需要重新启用链接。 事件听众 //check network status if(!navigator.onLine) { offlineLinks(); //Offline mode function } //add event listeners for network status window.addEventListener(‘offline’, function(e) { offlineLinks(); //Offline mode function }, false); window.addEventListener(‘online’, function(e) { //need to re-enable links/Online mode }, false); window.addEventListener(‘error’, function(e) { alert(‘Error fetching manifest: there is a good chance we are offline.’); offlineLinks(); […]