0

ユーザーが自分のアカウント番号を提供できる配送方法を選択し、チェックアウト時にアカウント番号を提供しないことに悩まされているeコマースストアがあります。

フォームパート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で生成されたページ(PHPは制御できません)の2つの別々のdivにあり、「次へ」ボタンを押すと、それぞれの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 に答える