要了解网络编程,我正在尝试一个简单的html / javascript / php"产品搜索"页。这是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>
并且product_search.php
文件非常小:
<?php
$product_type = $_POST["product_type"];
echo "<h1>$product_type</h1>";
?>
问题是似乎永远不会为表单调用onsubmit
事件。我认为这是一个JavaScript问题(例如,不允许运行),但是如果我在调用alert
事件时运行mySubmit()
而不是调用onsubmit
,它就可以了!
另外,我认为应该运行<body id="body">
下的JavaScript是错误的吗?它永远不会运行。
所以,对于那些没有读过所有内容的人:为什么我的JavaScript函数在onsubmit
事件被触发时没有运行?
答案 0 :(得分:3)
运行代码时出现以下解析错误:
Uncaught SyntaxError: Unexpected token return
Uncaught ReferenceError: mySubmit is not defined
您错过了)
来电的结束$.post
,这打破了解析器。解决之后,在引用jQuery之前,您将收到$ is undefined
错误。
答案 1 :(得分:0)
<script type="text/javascript">
mySubmit();
</script>
调用上面的函数但调用它时,即使是document.getElementById('product_type')。value也会给出错误(可能无法在浏览器上启用),因为product_type结果为null,因为javascript在正文中在浏览器完全呈现页面之前执行。它被调用的那一刻,还没有呈现product_type。
单击也会调用您的函数,但这次可能会失败,因为您没有引用Jquery。包括一个。