拦截提交不起作用

时间:2018-07-13 23:11:23

标签: javascript jquery

我有许多填充(输入)或选定(下拉)的字段,它们一起工作以创建新页面。

如果输入有任何问题,我试图验证输入并阻止页面创建。没有使用任何表格。 问题是单击提交时$("#netsubmit").submit(function( event ))永远不会运行。没有抛出任何错误,也没有表明为什么不进行处理。

我输入的html是:

<input id="netsubmit" type="submit" value="Submit" onClick="newNet()"
    title="Submit The New Net">

我的JQuery javascript是:

$(document).ready(function () {
    $("#netsubmit").submit(function( event ) {
       alert("in it");
        var callentered = $("#callsign").val();
        if (callentered == "") {
            event.preventDefault();
            alert("Please enter a call sign first.");
            $("#callsign").focus();
        }
    });
});

3 个答案:

答案 0 :(得分:3)

这可能不起作用,因为正如您所说的,您没有使用form元素。来自jquery docs

  

当用户试图提交表单时,submit事件被发送到一个元素。它只能附加到表单元素上

您可以使用onclick事件fetch指定的函数来验证数据。

答案 1 :(得分:1)

.submit()只能与documentation中所述的<form>元素一起使用:

  

它只能附加到<form>个元素上。

如果您不想使用form标记,则可以改为使用.click(),就像这样:

$("#netsubmit").click(function(event) {
    alert("in it");
});

答案 2 :(得分:1)

如果您阅读了有关在MDN上提交的文档,则明确表示

  

提交表单时会触发Submit事件。

     

请注意,仅在表单元素(而不是按钮或   提交输入。 (表单是提交的,不是按钮。)

如果愿意

<form id="myform">
<input id="netsubmit" type="submit" value="Submit" onClick="newNet()"  title="Submit The New Net">
  </form>

然后更改代码

    $(document).ready(function () {
            $("#myform").submit(function( event ) {
               alert("in it");
                    var callentered = $("#callsign").val();
                        if (callentered == "") {
                            event.preventDefault();
                                alert("Please enter a call sign first.");
                                    $("#callsign").focus();
                        }
            });
  });

工作正常