【问题标题】:Script to join checkbox values into string before submitting在提交之前将复选框值加入字符串的脚本
【发布时间】:2016-07-24 13:53:58
【问题描述】:

我有一个贝宝结帐表单,我需要将多个选择的复选框值 (name="cb1") 连接到一个字符串中,以便可以将其作为隐藏输入 (name="os1") 值提交。我正在兜圈子试图弄清楚这一点。我对JS知之甚少!有人可以帮忙吗?

<div id="buyform">
        <form target="paypal" id="ppform" name="ppform" action="https://www.paypal.com/cgi-bin/webscr" method="post" >
        <input type="hidden" name="cmd" value="_cart">
        <input type="hidden" name="business" value="myPPbusinessid">
        <input type="hidden" name="lc" value="GB">
        <input type="hidden" name="item_name" value="Form Title">
        <input type="hidden" name="button_subtype" value="products">
        <input type="hidden" name="no_note" value="0">
        <input type="hidden" name="no_shipping" value="2">
        <input type="hidden" name="currency_code" value="GBP">
        <input type="hidden" name="add" value="1">
        <input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHosted">
        <div><input type="hidden" name="on0" value="Options"><h5>Options</h5></div>
        <div>
            <select name="os0" id="os0" required>
        		<option value="Chosen Product">Any quantity £10.00 GBP</option>
        	</select>
        </div>
        <input type="hidden" name="on1" value="Colours">
        <div>
        <input type="checkbox" name="cb1" value="Red" id="os10" class="thecbox"/><label for="os10"></label>
        <input type="checkbox" name="cb1" value="Green" id="os11" class="thecbox"/><label for="os11"></label>
        <input type="checkbox" name="cb1" value="Orange" id="os12" class="thecbox"/><label for="os12"></label>
        <input type="checkbox" name="cb1" value="Purple" id="os13" class="thecbox"/><label for="os13"></label>
        <input type="checkbox" name="cb1" value="Yellow" id="os14" class="thecbox"/><label for="os14"></label>
        <input type="checkbox" name="cb1" value="Black" id="os15" class="thecbox"/><label for="os15"></label>
        <input type="checkbox" name="cb1" value="Blue" id="os16" class="thecbox"/><label for="os16"></label>

        <input type="hidden" name="os1" value="EACH, CHECKED, VALUE, HERE">
            
        </div>
        <input type="hidden" name="currency_code" value="GBP">
        <input type="hidden" name="option_select0" value="Options">
        <input type="hidden" name="option_amount0" value="10.00">
        <input type="hidden" name="option_index" value="0">
        <input type="hidden" name="currency_code" value="GBP">
        <input type="submit" border="0" name="submit" id="submit" value="Purchase" class="buynow mb0"></form>
        </div>

【问题讨论】:

  • 多种颜色有效吗?我可以同时订购绿色和红色的产品吗?如果没有,也许你需要单选按钮。
  • 是的,他们需要能够选择任意数量的颜色
  • 问题是 Paypal 不会接受“选项”的多个值,所以如果我不使用 JS 连接这些值,那么 paypal 只会看到最后一个被选中的值

标签: javascript forms checkbox paypal concatenation


【解决方案1】:

我似乎已经让它完全按照我的意愿工作了。不禁觉得JS需要整理!我怀疑应该是一小段代码似乎很长......就像我说的:我的 JS 很差,甚至不存在!

<script type="text/javascript">
	function checkTotal() {

        document.ppform.os1.value = '';

        if (document.getElementById('os10').checked){
            var cb1str = document.ppform.cb1.value;
        } else {
            var cb1str = '';
        }
        if (document.getElementById('os11').checked){
            var cb2str = document.ppform.cb2.value;
        } else {
            var cb2str = '';
        }
        if (document.getElementById('os12').checked){
            var cb3str = document.ppform.cb3.value;
        } else {
            var cb3str = '';
        }
        if (document.getElementById('os13').checked){
            var cb4str = document.ppform.cb4.value;
        } else {
            var cb4str = '';
        }
        if (document.getElementById('os14').checked){
            var cb5str = document.ppform.cb5.value;
        } else {
            var cb5str = '';
        }
        if (document.getElementById('os15').checked){
            var cb6str = document.ppform.cb6.value;
        } else {
            var cb6str = '';
        }
        if (document.getElementById('os16').checked){
            var cb7str = document.ppform.cb7.value;
        } else {
            var cb7str = '';
        }
		var sum = cb1str.concat(cb2str).concat(cb3str).concat(cb4str).concat(cb5str).concat(cb6str).concat(cb7str);
		document.ppform.os1.value = sum;
	}
</script>
<div id="buyform">
            <form target="paypal" id="ppform" name="ppform" action="https://www.paypal.com/cgi-bin/webscr" method="post" >
            <input type="hidden" name="cmd" value="_cart">
            <input type="hidden" name="business" value="myPPbusinessid">
            <input type="hidden" name="lc" value="GB">
            <input type="hidden" name="item_name" value="Form Title">
            <input type="hidden" name="button_subtype" value="products">
            <input type="hidden" name="no_note" value="0">
            <input type="hidden" name="no_shipping" value="2">
            <input type="hidden" name="currency_code" value="GBP">
            <input type="hidden" name="add" value="1">
            <input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHosted">
            <div><input type="hidden" name="on0" value="Options"><h5>Options</h5></div>
            <div>
                <select name="os0" id="os0" required>
            		<option value="Chosen Product">Any quantity £10.00 GBP</option>
            	</select>
            </div>
            <input type="hidden" name="on1" value="Colours">
            <div>
            <input type="checkbox" name="cb1" value="Red " id="os10" onchange="checkTotal()" /><label for="os10"></label>
            <input type="checkbox" name="cb2" value="Green " id="os11" onchange="checkTotal()" /><label for="os11"></label>
            <input type="checkbox" name="cb3" value="Orange " id="os12" onchange="checkTotal()" /><label for="os12"></label>
            <input type="checkbox" name="cb4" value="Purple " id="os13" onchange="checkTotal()" /><label for="os13"></label>
            <input type="checkbox" name="cb5" value="Yellow " id="os14" onchange="checkTotal()" /><label for="os14"></label>
            <input type="checkbox" name="cb6" value="Black " id="os15" onchange="checkTotal()" /><label for="os15"></label>
            <input type="checkbox" name="cb7" value="Blue " id="os16" onchange="checkTotal()" /><label for="os16"></label>

            <input type="hidden" name="os1" value="">
                
            </div>
            <input type="hidden" name="currency_code" value="GBP">
            <input type="hidden" name="option_select0" value="Options">
            <input type="hidden" name="option_amount0" value="10.00">
            <input type="hidden" name="option_index" value="0">
            <input type="hidden" name="currency_code" value="GBP">
            <input type="submit" border="0" name="submit" id="submit" value="Purchase" class="buynow mb0"></form>
            </div>

【讨论】:

    猜你喜欢
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    相关资源
    最近更新 更多