Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数范围-定义的jquery函数在html表单(jquery)中不起作用_Javascript_Jquery - Fatal编程技术网

Javascript 函数范围-定义的jquery函数在html表单(jquery)中不起作用

Javascript 函数范围-定义的jquery函数在html表单(jquery)中不起作用,javascript,jquery,Javascript,Jquery,我试图在HTML表单上调用jquery函数。它不工作,我想检查“键”字段长度不应小于10。但是看起来,函数checkError根本没有被调用 <form action="/search" method="get" onsubmit="if (document.getElementById('key').value.length < 10) checkError();"> 此处的完整代码:问题是在调用return false之前提交了表单。如果使用onsubmit内联,则

我试图在HTML表单上调用jquery函数。它不工作,我想检查“键”字段长度不应小于10。但是看起来,函数checkError根本没有被调用

<form action="/search" method="get" onsubmit="if (document.getElementById('key').value.length < 10) checkError();"> 


此处的完整代码:

问题是在调用return false之前提交了表单。如果使用onsubmit内联,则必须使用false;因此,它不会提交表单

您没有真正正确地执行此操作。您说您试图在HTML代码中调用jquery函数,但实际上您正在执行if条件,然后可能会调用函数

如果您将所有处理移到一个javascript函数中,这样做会更好,而且干扰更少。如果您使用的是jQuery,请查看设置
submit()
事件函数,然后在那里进行处理。在此函数中返回
true
,然后提交表单,返回
false
将停止表单处理

这也可能会以这样一种方式格式化东西,使调试任何种类的bug变得更容易

例如:

jQuery:

$(document).ready(function() {
    $("#formID").submit(function() {
        //do some processing, call other functions, whatever
        if(error)
            return false;
        else
            return true;
    });
});
<form action="/search" method="get" id="formID">
HTML:

$(document).ready(function() {
    $("#formID").submit(function() {
        //do some processing, call other functions, whatever
        if(error)
            return false;
        else
            return true;
    });
});
<form action="/search" method="get" id="formID">


很抱歉,我不能写我的答案,因为“它不起作用”(看看这是怎么一个有点太含糊而无法做任何事情的?)谢谢,但它不起作用,我把它放到了jsfiddle to@EmmetB上,这可能是因为您使用的jsfiddle完全错误。存在多个无效语法的实例,您甚至没有加载jquery库,就目前而言,这个答案很好。是的,这解决了所有代达罗斯,谢谢。我忘了加载JSFIDLE,但在我的开发环境中它被加载了。因此,mdub的观点是正确的,而且有效,尽管Jace的答案也有效。