相关疑难解决方法(0)

通过按Enter#2阻止用户提交表单

在上一个问题中,我问了同样的问题,但是当用户在文本框中时,我没有阻止提交的答案.

所以基本上我需要的是能够阻止一个人提交表单,除非明确点击提交按钮.

编辑:

基本上这样做的主要原因是这是雇主调查.在这方面的人不会是技术上最精明的,我正在为此做的客户要求这样做.

html javascript jquery

5
推荐指数
2
解决办法
6212
查看次数

停止输入/返回键提交表单

我在表格中有一张桌子.该表包含一些表单字段,但表格外部还有表单字段(但仍在表单中).

我知道Enter和Return传统上用于通过键盘提交表单,但我想为表中的字段停止此行为.例如,如果我将一个字段集中在表中并按Enter/Return,则不会发生任何事情.如果我将一个字段聚焦在表格之外(但仍然在表格内),那么它就像正常一样提交.

我有一个针对此表的jQuery插件.简化,这是我迄今为止尝试过的:

base.on('keydown', function(e) {
    if (e.keyCode == 13) {
        e.stopPropagation();
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

base表jQuery对象在哪里.这是我的插件的init方法.但是,按Enter键仍会提交表单.

我哪里错了?

编辑:一些简化的HTML:

<form method="" action="">
  <input type="text" /><!--this should still submit on Enter-->
  <table>
    <tbody>
      <tr>
        <td>
          <input type="text" /><!--this should NOT submit on Enter-->
        </td>
      </tr>
    </tbody>
  </table>
</form>
Run Code Online (Sandbox Code Playgroud)

javascript forms jquery keyboard-events jquery-events

5
推荐指数
1
解决办法
1万
查看次数

为什么我的jQuery对话框会在按下enter时重新加载页面?

我正在尝试使用jQuery对话框在我的页面中输入数据.由于某种原因我不明白,当用户按回车键时,整个页面都会刷新.它甚至不验证文本框中的内容.

我创建了一个显示问题的jsfiddle.我在这里检查了文档,我的代码似乎遵循了指南,但我必须遗漏一些东西!

这是我如何调用对话框

$("#create-subtitle")
    .click(function () {
    $("#dialog-form-subtitles").dialog("open");
    return false;
});
Run Code Online (Sandbox Code Playgroud)

这是我的一个对话框:

$("#dialog-form-steptitles").dialog({
        autoOpen: false,
        height: 220,
        width: 450,
        modal: true,
        buttons: {
            "Ajouter un sous-titre pour les étapes": function () {
                var bValid = true;
                allFieldsStepTitle.removeClass("ui-state-error");
                bValid = bValid && checkLength(nameStepTitle, "sous-titre pour les étapes", 3, 50);

                if (bValid) {
                    var $parent = $("#StepTitles");
                    var numElem = $parent.find("tr").length;
                    $('#StepTitles > tbody:last').append('<tr><td><input class="text-box single-line" id="StepTitles_' + numElem + '__Name" name="StepTitles[' + numElem + …
Run Code Online (Sandbox Code Playgroud)

jquery dialog jquery-ui

5
推荐指数
2
解决办法
5761
查看次数

防止用户按文字区域输入Enter

我有一个相当复杂的形式,有多个阶段,有许多不同的文本字段和文本区域.它在使用过的条形码中使用的环境默认情况下是输入的,并且可以选择使用它们扫描大量产品,因此关闭输入功能已成为一个禁忌.

我正在使用表单向导脚本,它在输入阶段处理客户端验证.填写表单时输入键被中断,并且在刷新页面之前拒绝提交,此脚本会中断.

<a href="javascript:;" class="btn green button-submit">Submit <i class="m-icon-swapright m-icon-white"></i></a>
Run Code Online (Sandbox Code Playgroud)

我有以下代码,可以防止在表单上输入,并允许在单击上面的链接时提交表单.

$(window).keydown(function (event) {
    if (event.keyCode == 13) {
        event.preventDefault();
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

但是这可以防止在textarea中使用输入.我做了一些研究并尝试使用is()jQuery中的运算符

$(document).ready(function () {
    $(window).keydown(function (event) {
        if (event.keyCode == 13 && !event.is("textarea")) {
            event.preventDefault();
            return false;
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

这不起作用,它无法阻止输入中的输入键,并使表单停止提交,就像之前一样.

最后,如果验证在表单上传递,这是处理提交表单的javascript

$('#form_wizard_1 .button-submit').click(function () {
    // Can put more onsubmit processing here
    document.getElementById('submit_form').submit();
}).hide();
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我如何阻止所有输入的输入键除了textareas.我并不假装自己是一名JavaScript开发人员,尽管我正在努力学习.以下是我读过的文章,试图改编代码或未能理解它如何以正确的方式适用于我:

通过按Enter键阻止用户提交表单

通过按Enter#2阻止用户提交表单

禁用页面上的输入键,但不在textarea中


*关于最后一个链接,我需要一个全局解决方案,自动阻止它在表单中可能存在的所有textareas.

一如既往,感谢您的帮助.

javascript forms jquery

5
推荐指数
1
解决办法
4217
查看次数

当按下回车键时如何防止表单内的输入字段提交?

我有一个简单的表格.

输入字段,复选框,单选按钮和最后的SUBMIT按钮.

我使用jQuery来执行AJAX验证,但是当用户在输入字段中按下ENTER时,它会提交表单!

如何阻止此表单(不是所有输入字段)发生这种情况?

javascript php jquery

4
推荐指数
1
解决办法
5691
查看次数

防止表单提交字段输入密钥keydown?

我已经构建了一个监听器来防止表单在特殊情况下提交.

我正在使用谷歌地图自动完成api,基本上我不想在用户按Enter键时提交表单,并显示"推荐结果框".当用户按Enter键从下拉框中选择一个值而不是提交表单.

我已经构建了一个正确捕获事件的侦听器,但我不知道如何阻止提交表单.

$('body').live('keydown', function(e) {
    if($(".pac-container").is(":visible") && event.keyCode == 13) {
        e.preventDefault(); // Prevent form submission
        }
    });
Run Code Online (Sandbox Code Playgroud)

我试过e.preventDefault(); 但它仍然提交表格.表单ID是:updateAccountForm

我怎样才能防止它发生?

编辑:我必须指出,直接在搜索输入上搜索按键似乎与Google API冲突使自动完成功能无效.所以没有$('input#search')keydown/keypress是可能的

javascript forms

4
推荐指数
2
解决办法
2万
查看次数

可以阻止Enter从仅从某些输入字段在Javascript中提交表单

我有一个表单,其中onkeyup触发为某些字段创建建议框.我可以捕获向上箭头,向下箭头和转义的击键,并相应地使用它们在建议框中移动或关闭它.我想使用enter将他们的选择移动到触发建议的输入字段.但是,我似乎无法捕获输入击键.

控件永远不会进入我的javascript建议功能.相反,表格只是提交.我已经尝试了在输入时返回false的noEnter函数传递给onkeypress和onkeydown用于有问题的输入元素,没有骰子.该表单似乎从所有输入事件处理程序中获取控制权,并在其中任何一个可以执行任何操作之前提交自身.

表单提交是否覆盖字段中的所有其他事件处理程序,或者此处还有其他内容吗?如果确实如此,那有什么办法吗?

这是有问题的元素(删除了一些值):

<input type="text" name="myInput" id="myInputField" size="22" onkeypress="noEnter(event)" onkeyup="suggest(event)" onblur="hideSuggestions()">
Run Code Online (Sandbox Code Playgroud)

这是javascript来捕捉它:

    var evnt = (event ? event : window.event);

    var key = evnt.keyCode;

    if(key == 13) { // Handle Enter
        alert("ENTER PRESSED.");
        hideSuggestions();
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

警报永远不会触发.放在函数顶部的警报也不会触发.但是,对于转义键,当我将完全相同的代码放入if检查key == 27警报时.

关于几乎相同的主题还有其他问题,例如:阻止用户通过输入#2来提交表单

但是,我没有使用jquery,我只想阻止enter提交这个字段.但是,各种问题中提到的其他解决方案似乎都不起作用.

EDITTED:解释密钥的设置位置.

html javascript forms javascript-events

3
推荐指数
1
解决办法
4648
查看次数

阻止在 Enter 上提交,但允许在 TextArea 中输入换行符

是否可以阻止回车键提交表单,但允许回车键在输入中工作。(例如textArea换行符)?

到目前为止我尝试过:

  • e.preventDefault()
  • e.stopPropagation()

两者都在表单标签上onkeyup="if (e.keyCode == 13))"

这确实阻止了通过 Enter 键提交表单,但它也阻止了 Enter 键完全在表单字段内工作。我想要实现的是,当我在 TextArea 中按 Enter 键时,它会创建一个 newLine ,但是当我在 a 中按 Enter 键时input type="text",它不会提交表单。

使用 JSF 2.3

JQuery 解决方案也可以。

html javascript jquery jsf

3
推荐指数
1
解决办法
4771
查看次数

PHP和Ajax发布

我正在使用jQuery表单插件发送ajax请求.你可以在下面的网址找到

http://malsup.com/jquery/form/
Run Code Online (Sandbox Code Playgroud)

这是我的jQuery代码

$(document).ready(function()
{
    $('#SubmitForm').on('submit', function(e)
    {
        e.preventDefault();
        $('#submitButton').attr('disabled', ''); 

        $(this).ajaxSubmit({
        target: '#output',
        success:  afterSuccess //call function after success
        });
    });
});

function afterSuccess()
{   

    $('#submitButton').removeAttr('disabled'); //enable submit button

}
Run Code Online (Sandbox Code Playgroud)

这段代码显示在div id输出上,每次我提交的代码都将删除旧的输出并显示新的输出.我想要做的是,保持旧的输出并在旧输出的顶部显示新的输出.有人能告诉我怎么做.

javascript ajax jquery jquery-plugins jquery-forms-plugin

2
推荐指数
1
解决办法
61
查看次数

jQuery,阻止表单提交从输入但允许通过按钮单击提交表单

我有一个表单,在输入文本框中我输入一个数字,然后按ENTER键,我使用jQuery将值附加到textarea.一切正常.

我遇到的问题是,如果我添加一个提交按钮来提交表单,只要我按下ENTER,它就会提交表单.

我想要它做的不是在按Enter键时提交表单,而是仅在单击提交按钮时提交表单.

我尝试过使用preventDefault()并返回false,这将停止按Enter键提交表单,但如果我在提交按钮上添加一个click事件来提交表单,它什么都不做.我在提交之前在点击功能中发出警报,但是火灾但表格没有提交

<form id="toteform" method="post" action="blah.php">
    <input type="text" name="bin" id="bin" maxlength="4" autocomplete="off" />

    <input type="text" name="totes" id="tote" maxlength="4" autocomplete="off" />

    <input type="button" name="submit" class="submit" id="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$("#submit").click(function() {
    $('#toteform').submit();
});

$('#bin').focus();

$('#bin').keypress(function(e) {
    if(e.which == 13) {
        $('#tote').focus();
    }
});

$('#tote').keypress(function(e) {
    if(e.which == 13) {

    // more code here to do other things
Run Code Online (Sandbox Code Playgroud)

forms jquery keypress submit form-submit

1
推荐指数
1
解决办法
1万
查看次数

如何在输入中按下enter时阻止WebKit浏览器提交表单

当使用具有许多文本输入的表单时,当在任何输入元素中按下"输入"时,WebKit/Safari/Google Chrome会提交表单.即使没有提交输入元素也没有注册onclick处理程序.

例如,请参阅此示例代码:

<html>
    <body>
        <form method="POST" action=".">
            <ul>
                <li><input type="text" name="foo" value="<?=rand()?>"/></li>
                <li><input type="text" name="bar" value="<?=$_POST['foo']?>"/></li>
            </ul>
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

当在两个文本输入元素中的任何一个中按Enter键时,将提交表单.

由于我使用异步HTTP请求在JavaScript中处理我的表单,因此我需要阻止此行为.我可以为keypressed事件注册一个自定义处理程序来阻止默认stopPropagation.但它看起来很丑陋,并且在动态添加新的文本输入元素时并不实用.

html safari webkit google-chrome submit

0
推荐指数
1
解决办法
4234
查看次数