簡體   English   中英

JavaScript不能在onsubmit事件上運行

[英]JavaScript not run on onsubmit event

要了解網絡編程,我正在嘗試一個簡單的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問題(因為,不允許運行),但如果我在調用onsubmit事件時運行alert而不是調用mySubmit() ,它就可以了!

另外,我認為應該運行<body id="body">下的JavaScript是錯誤的嗎? 它永遠不會運行。

所以,對於那些沒有閱讀所有內容的人: 為什么我的JavaScript函數在onsubmit事件被觸發時沒有被運行?

運行代碼時出現以下解析錯誤:

Uncaught SyntaxError: Unexpected token return

Uncaught ReferenceError: mySubmit is not defined 

你缺少收盤)上的$.post調用,這是打破了解析器。 一旦你解決了這個問題,你就會得到$ is undefined錯誤,直到你引用jQuery。

http://jsfiddle.net/Z6hJK/

<script type="text/javascript">
            mySubmit();
        </script>

調用上面的函數,但是當調用它時,甚至document.getElementById('product_type')。value給出錯誤(可能沒有在你的瀏覽器上啟用它),因為它的product_type結果為null,因為之前執行了javascript瀏覽器已完全呈現頁面。 它被調用的那一刻,還沒有呈現product_type。

單擊也會調用您的函數,但這次可能是因為您沒有引用Jquery而失敗。 包括一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM