javascript - 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  
<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
我越看这个,我就越困惑。看起来我在创建变量时没有犯任何明显的错误,所以我很好奇可能导致这些问题的原因。
解决方案
您的表单没有action
属性。因此,当您提交时它不会做任何事情。您需要添加一个action
命中该 PHP 端点的属性。
或者,onclick
向表单添加一个侦听器,然后在此端提交时执行您希望它执行的任何工作。
无论哪种方式,当您提交表单时,您的表单当前没有设置任何“做”,这就是它不起作用的原因!
编辑:正如一些人在评论中指出的那样,该action
属性在 HTML 5中不是必需的。话虽如此,该代码不起作用的事实仍然使我相信您应该将其作为可能的原因进行调查
推荐阅读
- spring - Apache ActiveMQ - 检索 JMS 指标
- c# - SMB Share C# Visual Studio
- hazelcast - 在 hazelcast 中为没有 put 的单个条目设置 TTL/Record Expiry
- python-3.x - 在单个 python 文件中导入 python 2 和 3 模块以进行条件执行
- bash - Bash:从数组的最后一个成员迭代到第一个成员
- python - 如何使用 BeautifulSoup 在 Python 中有效地比较图像
- python - Flask TypeError:字符串索引必须是整数
- javascript - Javascript将行标题从数组中添加到表中?
- python - 在 Python 数据框中的另一列中,您如何确定哪些 ID 随着时间的推移而增加值?
- parsing - 解析器(Yacc)似乎忽略了语法中的标记