首页 > 解决方案 > form.submit() 无法正常工作

问题描述

在这里让 form.submit() 正常工作有点麻烦。我第一次研究 PHP,我确定如何在这里找到我的问题。看起来 Javascript 工作正常。奇怪的是,如果我创建一个正常的一切正常工作。不幸的是,我需要做的是调用 form.submit() 作为位于表单外部的另一个输入按钮上的事件处理程序。

           <div id="top-header"></div>    
        <div id="form-container">
            <div id="location-section">
                <form id="customer-info" class="unselectable" unselectable='on' method="post" target="_blank">
                    Company name &nbsp
                    <input type="text" class="textInput" id="company-name" name="name">
                    <br>Street address
                    <input type="text" class="textInput" id="street-address" name="address">
                    <br>City
                    <input type="text" class="textInput"  id="city">
                    <br>State/Province
                    <input type="text" class="textInput"  id="state-province">
                    <br>Zip code
                    <input type="text" class="textInput"  id="zip-code">
                    <br>Country
                    <input type="text" class="textInput"  id="country">
                </form>
            </div>

我现在只输入了两个输入元素的名称,因为我只是想弄清楚这里出了什么问题。

这是为要提交的表单创建一个变量

var customerInfo = document.getElementById("customer-info");

我在这个项目中使用了一些 JQuery,所以我将所有内容都包含在 $(document).ready(); 中。

事情变得奇怪的是我的 console.log() 实际上正常输出“提交”,所以这段代码肯定正在执行。这让我觉得我的问题不是那么明显(至少对我来说可能不是!)

    submit.addEventListener("click", function(){
        console.log("Submit");
        customerInfo.submit();
}); 

Javascript

  <?php
 if(isset($_POST["name"]))
 {
   echo $_POST["name"];

}
else
{
    echo "no name provided";
}

if(isset($_POST["address"]))
{
     echo $_POST["address"];
}
else
{
     echo "no address provided";
}
?>

PHP

我越看这个,我就越困惑。看起来我在创建变量时没有犯任何明显的错误,所以我很好奇可能导致这些问题的原因。

标签: javascriptphphtml

解决方案


您的表单没有action属性。因此,当您提交时它不会做任何事情。您需要添加一个action命中该 PHP 端点的属性。

或者,onclick向表单添加一个侦听器,然后在此端提交时执行您希望它执行的任何工作。

无论哪种方式,当您提交表单时,您的表单当前没有设置任何“做”,这就是它不起作用的原因!

编辑:正如一些人在评论中指出的那样,该action属性在 HTML 5中不是必需的。话虽如此,该代码不起作用的事实仍然使我相信您应该将其作为可能的原因进行调查


推荐阅读