Javascript 如何防止提示对话框在输入时提交表单

Javascript 如何防止提示对话框在输入时提交表单,javascript,Javascript,我有一个按钮,打开一个提示: $('#enter-manual-date').click(function(){ var date = prompt("Enter the date", ""); if(date != null && moment(date, 'DD-MM-YYYY', true).isValid()){ $('#exp').val(date); }else{ $('#

我有一个按钮,打开一个提示:

$('#enter-manual-date').click(function(){
        var date = prompt("Enter the date", "");
        if(date != null && moment(date, 'DD-MM-YYYY', true).isValid()){
            $('#exp').val(date);
        }else{
            $('#exp').val('');
            alert("Invalid Date! Format should be: DD-MM-YYYY");
        }
    });
但问题是,当我按enter键时,即使对话框仍然没有任何输入,它也会自动提交表单

我已在阻止表单在进入时提交:

$(function(){
        $("form").bind("keypress", function (e) {

            if (e.keyCode == 13) {
                return false;
            }
        });
    });
我还试图防止违约:

e.preventDefault();
这是HTML。当您单击“添加文档”按钮时,它会提交表单:


添加Car文档
@包括('partials.alert')
注册号。
搜寻
@如果($errors->has('car_num'))
{{$errors->first('car_num')}
@恩迪夫
搜索结果
    文件类型 @foreach($dt为单据类型) {{friendlyText($dt)} @endforeach 车牌号。 @如果($errors->has('plate_number')) {{$errors->first('plate_number')} @恩迪夫 保险公司 @如果($errors->has('insurance\u company')) {{$errors->first('insurance_company')} @恩迪夫 保险签发日期 @如果($errors->has('date\u insurance\u issued')) {{$errors->first('date\u insurance\u issued')} @恩迪夫 手工输入 文件 @如果($errors->has('doc')) {{$errors->first('doc')} @恩迪夫 到期 @如果($errors->has('exp\u datetime')) {{$errors->first('exp\u datetime')} @恩迪夫 手工输入 到期 @如果($errors->has('exp')) {{$errors->first('exp')} @恩迪夫 手工输入 添加文档

    但它也不起作用。有什么想法吗?

    让我们试试以下方法:

    $('myform').submit(function(e) {
        e.preventDefault();
    });
    
    而不是

    $(function(){
        $("form").bind("keypress", function (e) {
            if (e.keyCode == 13) {
                return false;
            }
        });
    });
    
    让我知道你的案子是怎么回事!
    关于您的问题还有更多信息。

    让我们尝试以下方法:

    $('myform').submit(function(e) {
        e.preventDefault();
    });
    
    而不是

    $(function(){
        $("form").bind("keypress", function (e) {
            if (e.keyCode == 13) {
                return false;
            }
        });
    });
    
    让我知道你的案子是怎么回事!
    有关于您的问题的更多信息。

    好的。所以问题一直是“手动输入”按钮实际上触发了提交。因此,当您单击按钮时,它会立即触发提交。但是由于我显示了一个提示,提交会被中断,直到提示关闭。在提示中单击或按enter键将触发要提交的表单。

    确定。所以问题一直是“手动输入”按钮实际上触发了提交。因此,当您单击按钮时,它会立即触发提交。但是由于我显示了一个提示,提交会被中断,直到提示关闭。在提示下按enter键将触发要提交的表单。

    请显示HTML,因为您提供的代码中没有任何内容与要提交的表单相关。您只需显示在单击somet时打开提示的代码