- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个表单,其中 JavaScript 允许字段重复的次数等于输入第一个表单输入字段的次数,例如第一个乘客的名字、第一个乘客的姓氏、第二个乘客的名字、第二个乘客的姓氏等。一旦提交按钮被按下,表单被发送到下一页。该表单包含从上一页发布的隐藏字段。这些隐藏字段以正确的值张贴,这让我相信表单生成代码中存在逻辑错误。在表单发布到的页面上,值是空白的,开发人员工具中的 HTML 代码读取 nopass 字段的 value=""。请注意,该代码没有语法错误,除了没有发布外,其行为符合预期,显示正确数量的字段,并且在更新影响它的字段时正确更新成本文本。
代码:
HTML 格式
<form name="bookpassdet" id="bookpassdet" method="post" action="bookconf.php">
<fieldset>
<legend>Booking Reference no. <?php echo $bookref; ?></legend>
<label class="amtofpass" for="amountofpassengers">Amount of Passengers</label>
<input type="hidden" name="bookref" id="bookref" value="<?php echo $bookref?>">
<input type="hidden" name="fromob" id="fromob" value="<?php echo $from?>">
<input type="hidden" name="goingob" id="goingob" value="<?php echo $goingto?>">
<input type="hidden" name="monthob" id="monthob" value="<?php echo $month?>">
<input type="hidden" name="dayob" id="dayob" value="<?php echo $day?>">
<input type="text" name ="amountofpassengers" id="nopass">
<input type="checkbox" name="wheelchair" value="yes"> Wheelchair Required<br>
<div id="container"/>
</fieldset>
</form>
JavaScript 生成输入字段
function addPassengers(e){
var pasobj=document.getElementById('nopass').value;
var container = document.getElementById("container");
while (container.hasChildNodes()){
container.removeChild(container.lastChild);
}
for(var i =0;i<pasobj;i++){
container.appendChild(document.createTextNode("Passenger " + (i+1)+" Forename"));
var input = document.createElement("input");
input.type = "text";
input.id = ("pasforname"+i);
container.appendChild(input);
container.appendChild(document.createElement("br"));
container.appendChild(document.createTextNode("Passenger " + (i+1)+" Surname"));
var input = document.createElement("input");
input.type = "text";
input.id = ("passurname"+i);
container.appendChild(input);
container.appendChild(document.createElement("br"));
container.appendChild(document.createTextNode("Passenger " + (i+1)+" Age"));
var agearr = ["<2","3-10","11-16",">16"];
var selectlist = document.createElement("select");
selectlist.id=("myselect"+i);
selectlist.name="myselect";
container.appendChild(selectlist);
container.appendChild(document.createElement("br"));
for(var k =0; k<agearr.length; k++){
var option = document.createElement("option");
option.value = agearr[k];
option.text = agearr[k];
selectlist.appendChild(option);
}
var single_button = makeRadioButton(("journey"+i),"single","Single Journey",("single"+i));
var return_button = makeRadioButton(("journey"+i),"return","Return Journey",("return"+i));
container.appendChild(single_button);
container.appendChild(return_button);
container.appendChild(document.createElement("br"));
container.appendChild(document.createTextNode("Cost: "));
var text = document.createElement("p");
text.id = ("costp"+i);
container.appendChild(text);
container.appendChild(document.createElement("br"));
}
var submit =document.createElement("input");
submit.type = "submit";
submit.id="subbutton";
submit.value="test";
container.appendChild(submit);
//add event listener to each created element in a loop where
if(window.addEventListener) {
for(var m=0;m<pasobj;m++){
document.getElementById("myselect"+m).addEventListener("change",calculateCost,false);
document.getElementById("single"+m).addEventListener("change",calculateCost,false);
document.getElementById("return"+m).addEventListener("change",calculateCost,false);
}
document.getElementById("subbutton").addEventListener("click",submitForm,false);
} else if(window.attachEvent) {
for(var m=0; m<pasobj;m++){
document.getElementById("myselect"+m).addEventListener("change",calculateCost);
document.getElementById("single"+m).addEventListener("change",calculateCost);
document.getElementById("return"+m).addEventListener("change",calculateCost);
}
document.getElementById("subbutton").addEventListener("click",submitForm);
}
}
there are 3 other functions called makeRadioButton(name,value,text, id);
calculateCost(e);
prepareBookPassDet();
prepareBookPassDet 只是将事件监听器附加到调用 addPassengers 函数的 keyup 事件上的 nopass 表单字段
我尝试了什么:
我尝试通过使用请求而不是 post 来解决 php 方面的问题,但无济于事。
我已经能够将事件监听器附加到提交按钮,该按钮会创建一个弹出窗口,显示输入到 nopass 的值并显示正确的值。
这与发布的隐藏字段相结合让我相信输入到字段中的值以某种方式没有被提交,但是表单被提交了。
感谢您花时间阅读本文。我对 web 开发尤其是 JavaScript 缺乏经验,因此希望能用简单的术语解释任何解决方案,并且不包括框架,坚持使用基本的 php、html 和 javascript。再次感谢您。
最佳答案
要与表单数据一起发送,输入元素需要具有 name
属性。 id
在此处不生效。这是因为可以有多个相同的名称,例如在单选按钮上,但只有唯一 ID 在 HTML 中有效。
在您的代码中:
var input = document.createElement("input");
input.type = "text";
input.id = 'pasforname'+i;
input.setAttrubute('name', 'pasforname'+i);
关于Javascript 生成的输入字段未发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54854784/
我们正在使用 VSTS 构建和发布通过 Xamarin 创建的 iOS 和 Android 应用程序。通过 VSTS 将 Android 应用发布到商店相对简单。有人可以指导我或提供一些如何通过 VS
我一直在研究 Spring Social Facebook 的 publish(objectId, connectionName, data) API ,但不确定此 API 的用法(遗憾的是,由于缺少
我正在使用 django viewflow 创建一个发布流程: 用户创建对象 它进入审核流程,其状态为待处理(公众不可见) 经过审核和批准后,就会发布并公开可见。 如果用户编辑同一实体,则会再次进入审
我正在尝试进行 API 调用,并且 API 需要格式为 XML: Security GetSessionInfo 999999999999 0 2 {
我已经查看了所有 StackOverflow,但没有找到适合我的案例的解决方案我有 405 HttpStatusCode 调用 API/Regions/Create 操作这是我的 baseContro
如果我切换到新版本的SpringBoot,我在启动应用程序时会得到上面的错误信息。这是为什么? 最美好的祝愿史蒂文 pom.xml 4.0.0 de.xyz.microservice spring
我有一个场景,页面导航是从一个域到另一个域完成的。例如,导航是从 http://www.foo.com到 http://www.bar.com在 JavaScript 中单击按钮 重定向时,我需要将用
这半年来一直深耕包头,这个城市比较不错,但是推进项目的难度确实挺大的。与开发产品相比,后者更省心。但是光研发产品,没有项目
我正在阅读有关 Github 版本 的信息,它似乎很适合您的项目。因为我们需要决定将哪些功能用于生产,哪些不用于。 我无法理解的部分是,master 和 release 分支如何在其中发挥作用。 Sh
我将一些代码推送到远程存储库,然后在 GitHub 上创建了第一个版本,并将其命名为 'v0.0.1'。 GitHub 现在显示我现在有一个版本,并且还在“标签”中显示我有一个标签 “v0.0.1”。
如果我有一个具有以下文件/文件夹结构的 GitHub 存储库 github.com/@product/template: /build /fileA /fileB /src /genera
我有一个 Maven 多模块项目。 当代码开发完成后,我们想在 Jenkins 中编写一个分支构建作业,它分支代码,增加主干中的 pom 版本,并删除 -SNAPSHOT 来自分支中的 pom 版本。
我有一个非常大的集合(约 40000 个文档,包含约 20-25 个字段,包括包含一组约 500 个项目的数组字段)和约 2000 个订阅者(他们现在只是机器人)。 因此,当用户订阅整个集合(不包括服
如果我正在使用消息队列构建一个包含数十个发布者/订阅者的系统,那么我似乎有一些网络配置选项: 我可以拥有一个所有机器都使用的集群代理 - 每台机器都没有本地队列 我可以在每台机器上本地安装代理,并使用
我正在使用 Flash Develop,并且创建了一个 ActionScript 3.0 项目。它启动并读取一个 xml 文件,其中包含图像的 url。我已将 url 保留在与 swf 相同的文件夹中
如果我在一个句子中使用 alloc 和 retain 声明一个 NSArray 那么我应该释放 NSArray 对象两次(即[arrayObject release] 2次)? 最佳答案 如果您在同一
我正在尝试在 Node 中实现发布/订阅模式,但不使用 Redis。功能应该是相同的;您可以发布到 channel ,订阅 channel 并收听数据(如果您已订阅);以下是 Redis 功能: pu
编辑:这个问题、一些答案和一些评论,包含很多错误信息。见 how Meteor collections, publications and subscriptions work准确理解发布和订阅同一服
我正在开发一款 DirectX 游戏,我发现在发布版本中我的平均帧速率为 170fps,但是在调试版本中我的帧速率约为 20fps。 我想知道发布和调试版本之间的巨大差异是否正常,特别是因为在调试中我
是否有办法回滚 Windows Azure 网站和 SQL 部署/发布? 我发布了一个网站,现在它导致了很多错误,我想回到之前的状态并进一步处理代码。 这可能吗? 最佳答案 如果您使用 Git 或 T
我是一名优秀的程序员,十分优秀!