- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是为了向 html 表单添加交互性。
我试图在选择相应选项时显示付款选择信息。然后隐藏其他选项。因此,如果选择信用卡,则显示信用卡信息,然后隐藏比特币和 Paypal 信息。反之亦然。
出于某种原因,当我选择信用卡时,一切正常,
然而,当我切换到 Paypal 或比特币时,什么也没有显示。我怎样才能解决这个问题?我宁愿不使用 jQuery。
下面是相应的 JS:
// Payment Info section of the form. Display payment sections based on chosen payment option
document.getElementById("payment options").addEventListener("change", function(){
var paymentOption = document.getElementById('payment');
var paymentSelection = paymentOption.value;
var container = document.getElementById('payment-container');
var creditCard = document.getElementById('credit-card');
var bitcoin = document.getElementById('bitcoin');
var paypal = document.getElementById('paypal');
// "Credit Card" payment option isselected by default so display of the #credit-card div...
// hide the "Paypal" and "Bitcoin information.
if(paymentSelection === "credit card") {
bitcoin.style.visibility = 'hidden';
paypal.style.visibility = 'hidden';
creditCard.style.visibility = 'visible';
}if(paymentSelection === "paypal") {
console.log('paypal');
// If user selects the "PayPal" payment option, display the Paypal information, and hide the credit card + Bitcoin
bitcoin.style.visibility = 'hidden';
creditCard.style.visibility = 'hidden';
paypal.style.visibility = 'visible';
} if(paymentSelection === "bitcoin") {
console.log('bitcoin');
/// If user selects the "Bitcoin" payment option, display the Bitcoin information, and hide the credit card + paypal.
paypal.style.visibility = 'hidden';
creditCard.style.visibility = 'hidden';
bitcoin.style.visibility = 'visible';
}
});
这是 html:
<fieldset id="payment options">
<legend>Payment Info</legend>
<label for="payment">I'm going to pay with:</label>
<select id="payment" name="user_payment">
<option value="credit card">Credit Card</option>
<option value="paypal">PayPal</option>
<option value="bitcoin">Bitcoin</option>
</select>
<div id="payment-container">
<div id="credit-card" class="credit-card">
<div class="col-6 col">
<label id="cc-numLbl" for="cc-num">Card Number:</label>
<input id="cc-num" name="user_cc-num" type="text">
</div>
<div class="col-3 col">
<label for="zip" id="zipLbl">Zip Code:</label>
<input id="zip" name="user_zip" type="text">
</div>
<div class="col-3 col">
<label id="cvvLbl" for="cvv">CVV:</label>
<input id="cvv" name="user_cvv" type="text">
</div>
<label>Expiration Date:</label>
<select id="exp-month" name="user_exp-month">
<option value="1">1 - January</option>
<option value="2">2 - February</option>
<option value="3">3 - March</option>
<option value="4">4 - April</option>
<option value="5">5 - May</option>
<option value="6">6 - June</option>
<option value="7">7 - July</option>
<option value="8">8 - August</option>
<option value="9">9 - September</option>
<option value="10">10 - October</option>
<option value="11">11 - November</option>
<option value="12">12 - December</option>
</select>
<select id="exp-year" name="user_exp-year">
<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>
</select>
</div>
<div id="paypal">
<p>If you selected the PayPal option we'll take you to Paypal's site to set up your billing information, when you click 'Register' below.</p>
</div>
<div id="bitcoin">
<p>If you selected the Bitcoin option we'll take you to the Coinbase site to set up your billing information. Due to the nature of exchanging Bitcoin, all Bitcoin transactions will be final.</p>
</div>
</fieldset>
最佳答案
首先,代码可以工作。可见性确实会正确更改,但如果进行以下更改,您可能会获得实际的预期效果:
(这些更改后的结果代码可以在这里看到:https://jsfiddle.net/fojbgaxh/)
1) 使用 element.style.display 而不是
和 element.style.visibility = 'hidden'
和 element.style.visibility = 'visible'
= 'none'element.style.display = 'block'
分别。当您使用前者(visibility = 'hidden')时,该元素将不再可见,但不会放弃其区域空间,因此您会在原来的位置留下一个空白空间。
2) 您当前的代码会显示所有三个选项,直到选择一个选项(而不是信用卡选项)。为了默认显示信用卡选项,您可以在 HTML 声明中将其他两个选项设置为“隐藏”。
关于javascript - 为什么我的元素仅在选择信用卡时显示/隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39887328/
由于数字也可以是小数,这让我认为 CC 数字应该是整数。这是有道理的,因为我认为任何信用卡都不会以 0 开头,而且它们都遵循相同的模式: 4444333322221111 所以我猜它们是一个整数,但我
有没有办法让 paypal 在后台处理我的信用卡,而无需用户离开我的网站或拥有 paypal 帐户? 或者此功能仅适用于“Pro”帐户? 谢谢。 最佳答案 这也适用于普通帐户。 直接支付用户体验 直接
有没有人有任何使用信用卡文件服务的经验,处理信用卡信息的存储以进行持续购买? 我们正在寻找一种解决方案,该解决方案可以通过 Web 服务或类似服务与自定义 ASP.NET 应用程序集成,但从我们这边移
我想知道如何在不使用 Apple 的应用内购买机制的情况下向用户询问信用卡详细信息并向他收费。 我的想法是将用户的信用卡发布到我的在线信用计费系统,并在网站上进行交易,在后台进行交易,然后将交易结果报
我想对 Guest Checkout 用户使用 Paypal 定期付款。也就是说,用户可以在没有任何 Paypal 帐户的情况下订阅我的计划。他也不需要创建 Paypal 帐户。只有他/她的信用卡 最
我在我的网站中集成了 NVP 方法,使用信用卡和 PayPal 进行定期付款。 完成付款后,新的用户资料将在商家的 PayPal 帐户中创建。但立即在 PayPal 网站中添加了第二行,显示配置文件的
当用户直接付款时(以客人身份购买 - 用信用卡付款),默认情况下,用户需要在转到信用卡号、csc 等之前填写信用卡帐单地址和电话号码。实际上我不需要真的想要账单地址,我可以直接将用户指向信用卡号,cs
通常,作为一个普通的应用程序,使用 active-merchant 和任何支付网关,我们提供一个基本的表格来填写属性: cc = CreditCard.new( :first_name => 'S
我使用的 iFrame 托管在另一个具有 SSL 证书的域上。在使用 iFrame 的页面上,我在 Google Chrome 的域旁边收到“不安全”消息,并在控制台日志中收到以下警告: This p
在我的 RoR 应用程序中存储我的客户的信用卡和账单信息的最佳做法是什么? 实际上,我正在使用 ruby 1.9.2、Rails 3.2.3,我正在考虑在 Heroku 中部署我的应用程序。 我们
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 11年前关闭。 Improve this qu
这是一个关于信用卡处理的问题。我们正在使用 AVS 并发现每笔因 AVS 失败的交易都会导致保留客户卡上的总金额。多次失败意味着多次保留。 发生这种情况是因为仅在 AUTH 完成后才检查 AVS。因此
假设我们有一个适用于手机的应用程序。制作此应用程序的原因之一是在特定网站的交付最后步骤中插入用户的一些关键信息,而这些信息并非来自应用程序创建者。它填写了地址、信用卡和真实姓名。在该网站购买商品后,应
我终于想出了如何使用这个 tutorial 实现 Stripes Monthly Billing 目前我的#new_subscription 表单和编辑表单的提交按钮创建信用卡数据并将其发送到 Str
我在 PayPal Pro/Express Omnipay Gateway 上测试沙盒信用卡时遇到问题。我正在使用在 Laravel 上运行的 October CMS,据我所知,它使用 Laravel
我希望用户能够通过 Windows Phone 应用程序购买门票,并且不想为此目的使用网络浏览器。票价可能不同。 是否可以通过电子钱包应用程序处理付款或需要与某些处理系统集成? 另请建议在 Windo
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
我是一名优秀的程序员,十分优秀!