html 开机自检数据未发送
html POST data not being sent
我有一个简单的html表单,它正在发布到我的接收php页面。我正在进入接收页面,查询字符串值正在出现,但没有一个发布的输入值。是的,我在所有输入元素上使用名称属性。我已经在 Chrome 开发者工具中检查了请求,但输入值未发送。我不知道为什么。
<form method="post" action="Authorize.Net/ProcessPayment.php?UserID=3">
<div id="dialogCC" title="Pay by Credit Card" style="display:none">
<p style="color:black"><b>Credit Card Info</b></p>
<p><input name="txtCCNumber" type="text" placeholder="Credit Card Number" maxlength="16" /></p>
<p>
<div style="white-space: nowrap">
<select name="ccExpireMonth" style="width:130px;font-size:15px">
<option value=''>Month</option>
<option value='01'>01-Janaury</option>
<option value='02'>02-February</option>
<option value='03'>03-March</option>
<option value='04'>04-April</option>
<option value='05'>05-May</option>
<option value='06'>06-June</option>
<option value='07'>07-July</option>
<option value='08'>08-August</option>
<option value='09'>09-September</option>
<option value='10'>10-October</option>
<option value='11'>11-November</option>
<option value='12'>12-December</option>
</select>
<select name="ccExpireYear" style="width:90px;font-size:15px">
<option value=''>Year</option>
<option value='2016'>2016</option>
<option value='2017'>2017</option>
<option value='2018'>2018</option>
<option value='2019'>2019</option>
<option value='2020'>2020</option>
<option value='2021'>2021</option>
<option value='2022'>2022</option>
<option value='2023'>2023</option>
<option value='2024'>2024</option>
<option value='2025'>2025</option>
<option value='2026'>2026</option>
</select>
</div>
</p>
<p><input name="txtCVV" type="text" placeholder="CVV" style="width:50px;float:left" maxlength="4" /> <b>$80.19</b></p>
<br>
<img src="images/creditcards.png" style="width:218px">
</div>
</form>
上面的 html 在 jQuery UI 对话框中,帖子是这样触发的:
function showCC(){
$("#dialogCC").dialog({
modal: true,
width: 268,
resizable: false,
position: { my: "center", at: "top" },
buttons: [
{
text: "Pay Now",
click: function() {
document.forms[0].submit();
//$(this).dialog("close");
}
},
{
text: "Cancel",
click: function() {
$(this).dialog("close");
}
}
]
});
}
我错过了什么?
发生这种情况的原因是 jQuery UI 将 UI 元素附加到 body 元素,而不是对话框的容器元素;窗体。然后,这会导致表单提交意外操作,因为所有输入字段都在实际表单元素之外。
解决此问题的方法是在对话框设置对象中定义 appendTo 元素。例如下面,我将对话框附加到其父级;窗体。
appendTo: $( '#dialogCC' ).parent( )
然后,完整代码将是这样的:
function showCC( ) {
$( '#dialogCC' ).dialog( {
appendTo: $( '#dialogCC' ).parent( ),
modal: true,
width: 268,
resizable: false,
position: { my: "center", at: "top" },
buttons: [
{
text: "Pay Now",
click: function( ) {
$( this ).closest( 'form' ).submit( );
// $( this ).dialog( 'close' );
}
},
{
text: "Cancel",
click: function( ) {
$( this ).dialog( 'close' );
}
}
]
} );
}
另请注意,我将document.forms[ 0 ]
更改为 $( this ).closest( 'form' )
,因为我担心使用"好"的旧方式会在具有多种形式的网页上轻松发生冲突。这样更安全。
相关文章:
- 开机自检无法正常工作,出现错误
- 类型错误:无法读取开机自检后未定义的属性“正文”(平均值)
- 在 AngularJS 和 CodeIgniter3 中开机自检数据时出现 CORS 错误
- html 开机自检数据未发送
- 快递.js开机自检空要求正文
- 取消选中通过开机自检 [] 中的回显选中的复选框
- 通过开机自检将 XML 发送到另一台服务器
- 控制器中的 MVC3 自动完成和开机自检方法
- 角度 UI 模式开机自检
- 控制器操作参数未从 AJAX 开机自检正确填充
- 王牌编辑器 - 通过开机自检在服务器上保存/发送会话
- ASP.NET Web API 2 - 如何开机自检
- 无法向服务器发送开机自检请求
- 默认$resource开机自检数据
- “location.reload()” 丢失了开机自检/会话数据?(F5 / Ctrl + R保留数据?
- 从服务器获取开机自检的数据不起作用
- 开机自检数据发送和更改 URL 相同
- 家长通过开机自检发送数据的弹出窗口
- MVC 4 API 控制器未接收开机自检数据
- 重定向丢失的开机自检/会话数据