0

我有一家电子商务商店,用户选择的送货方式允许他们提供自己的帐号,然后在结帐时不提供帐号,这让我感到困扰。

表格第 1 部分:

<dt>
<span class="Required FormFieldRequired" style="visibility: hidden">*</span>
<span class="FormFieldLabel">Shipping Account Number:</span>
</dt>
<dd>
<input class="FormFieldId" type="hidden" value="25">
<input class="FormFieldFormId" type="hidden" value="2">
<input class="FormFieldType" type="hidden" value="singleline">
<input class="FormFieldPrivateId" type="hidden" value="">
<input id="FormField_25" class="Textbox Field200 FormField" type="text" value="Fill This If Using Your Own Shipping Account" name="FormField[2][25]">
</dd>

表格第 2 部分:

<span class="FormFieldLabel">Shipping Account Number:</span>
<dd>
<input class="FormFieldId" type="hidden" value="26">
<input class="FormFieldFormId" type="hidden" value="3">
<input class="FormFieldType" type="hidden" value="singleline">
<input class="FormFieldPrivateId" type="hidden" value="">
<input id="FormField_26" class="Textbox Field200 FormField" type="text" value="Fill This If Using Your Own Shipping Account" name="FormField[3][26]">
</dd>

这两个都在 PHP 生成的页面上的 2 个单独的 div 中(PHP 我们无法控制),当您按下“下一步”按钮时,它们所在的每个 div 都会被隐藏,显示下面的 div。

然后通过以下单选按钮选择运输:

<ul class="ShippingProviderList">
<li>
<label id="shippingMethod_500d6aa9a300e_1">
<input id="shippingCheck_500d6aa9a300e" type="radio" value="1" name="selectedShippingMethod[500d6aa9a300e]">
<span class="ShipperName">My Own Shipping Account (Please make sure that account number is specified within your account page or item will not ship!)</span>
<em class="ShipperPrice ProductPrice">$0.00</em>
</label>
</li>

id 的 500d6 片段是动态生成的。

我需要帮助设计一段 Javascript 代码以放置在此页面上,以便如果选择了该单选圆圈,并且运输帐号表单字段都没有运输值,它只会隐藏

<input type="submit" value="Continue">

按钮,如果可能的话,用文字替换它(我可以自定义) - 不幸的是,我不知道 javascript,只有一些 PHP,当然还有 HTML/CSS。如果有人愿意帮助提供资源或链接以帮助我走上正确的道路,那将非常有帮助。谢谢!

4

1 回答 1

2

更改<input type="submit" value="Continue"><input type="submit" id="btn" value="Continue" hidden >默认情况下我们将隐藏它(除非您使用 php 填充表单,在这种情况下您可以在那里进行检查以查看是否需要这样做)。

var radio = document.getElementById('shippingCheck_500d6aa9a300e'),
    input1 = document.getElementById('FormField_25'),
    input2 = document.getElementById('FormField_26'),
    btn = document.getElementById('btn'); // yes you will need to add an identifier to the button itself. name or id would work. if name you would document.forms[frmName or 0 for the first form].elements[buttonName]

document.forms[0].onchange = function() { // this assumes you have only one form. change the 0 to a name or proper index if need be.
    if( radio.checked && input1.value.length > 0 && input2.value.length > 0 ) {
        btn.hidden = false;
    } else {
        btn.hidden = true;
    }
};

我意识到您无法控制 id 值是什么......那么您将不得不按名称选择或使用 php 生成一些 js 来保存这些值。

希望这可以帮助。

于 2012-07-23T17:23:44.923 回答