JavaScript未在onsubmit事件上运行
为了了解web编程,我尝试了一个简单的html/javascript/php“产品搜索”页面。以下是JavaScript未在onsubmit事件上运行,javascript,html,onsubmit,Javascript,Html,Onsubmit,为了了解web编程,我尝试了一个简单的html/javascript/php“产品搜索”页面。以下是index.php文件: <html> <head> <title>Product Search</title> <script type="text/javascript"> function mySubmit() { alert("subm
index.php
文件:
<html>
<head>
<title>Product Search</title>
<script type="text/javascript">
function mySubmit() {
alert("submitting...");
var product_type = $('product_type').value;
$.post('product_search.php', { product_type: product_type }, function (data) {
alert("result = " + data);
$('body').html(data);
}
return false;
}
</script>
</head>
<body id="body">
<script type="text/javascript">
mySubmit();
</script>
<form class="form" id="myform" method="post" onsubmit="javascript:return mySubmit();">
Product Type:
<input id="product_type" type="text" name="product_type"/>
<br/><br/>
<input id="submit" type="submit" value="Submit"/>
</form>
</body>
</html>
问题是表单似乎从未调用onsubmit
事件。我认为这是一个JavaScript问题(如中,不允许运行),但是如果在调用onsubmit
事件时运行警报而不是调用mySubmit()
,它就会工作
另外,我认为应该运行
下面的JavaScript,这是不是错了?它也永远不会运行
因此,对于那些没有阅读所有这些内容的人:为什么在触发onsubmit
事件时我的JavaScript函数没有运行?我在运行代码时遇到以下解析错误:
Uncaught SyntaxError: Unexpected token return
Uncaught ReferenceError: mySubmit is not defined
您的$.post
调用缺少结束)
,这会破坏解析器。一旦您解决了这个问题,您将得到$is undefined
错误,直到您引用jQuery为止
mySubmit();
调用上述函数时,即使是document.getElementById('product_type')。value也会给出错误(您的浏览器可能没有启用该值来捕获),因为它的product_type结果为null,因为在浏览器完全呈现页面之前执行了正文中的javascript。在调用它的那一刻,产品类型尚未呈现
单击也会调用您的函数,但这次可能会失败,因为您没有对Jquery的引用。包括一个。控制台中是否有错误?根据您的示例,我希望至少有一个$未定义。为什么我会犯这样的错误?jQuery不是将$
定义为document.getElementById
?您对jQuery的引用在哪里?您的意思是什么?它不是默认引用的吗?如果有帮助的话,我正在使用xampp。不。。你必须把它包括进去。。jquery本身是一个不可用的库。关于缺少的)您是对的代码>-我添加了它,现在调用mySubmit()代码>工作!我没有得到$is undefined
错误,但是。。。我会在哪里看到它?“如果有人能解释一下,我会很感激的。”。。啊,不,答案区不是提问的地方。没有必要。。。我已经弄明白了。
Uncaught SyntaxError: Unexpected token return
Uncaught ReferenceError: mySubmit is not defined
<script type="text/javascript">
mySubmit();
</script>