0

同じページの別のフォームで、2 つの個別のフィールドから対応するフィールドに 2 つのフィールド値をコピーする必要があります。

入力フィールド: 名 入力フィールド: 姓

これらの値を次の場所にコピーします。

入力フィールド: 請求先名 入力フィールド: 出荷先名

次のコードを試してみましたが、役に立ちませんでした。別の Web サイトからハッキングしました。この Web サイトには同じチェックボックスがあります。私の場合、顧客の名、姓、電子メールを入力するためのフォームがあり、顧客は [続行] をクリックします。ボタンをクリックすると、次のフォームが読み込まれます。このフォームは、最初のフォームに従って姓/名を自動入力したい場所です。

これは、ドキュメントの の間で使用しているコードです。

<script type = "text/javascript">
function FillBilling(f) {
  if(f.dispatch[checkout.update_steps].submit == true) {
    f.user_data[firstname].value = f.user_data[b_firstname].value;
    f.user_data[lastname].value = f.user_data[b_lastname].value;
  }
}
</script>

フィールドはこのようにデフォルトで生成されますが、残念ながら ID や名前の値を変更することはできません。

ファーストネーム:

<input type="text" class="input-text " value="" size="32" name="user_data[firstname]" id="elm_6">

苗字:

<input type="text" class="input-text " value="" size="32" name="user_data[lastname]" id="elm_7">

続行ボタン:

<input type="submit" value="Continue" name="dispatch[checkout.update_steps]">

請求先名:

<input type="text" class="input-text " value="" size="32" name="user_data[b_firstname]" id="elm_14">

請求先の姓:

<input type="text" class="input-text " value="" size="32" name="user_data[s_firstname]" id="elm_16">

間違っているかもしれませんが、Continue submit ボタンの名前にドット (dispatch[checkout.update_steps]) が含まれているため、Javascript が壊れていると思いますが、よくわかりません。

また、「First Name」、「Last Name」フィールド、および「Continue」ボタンが別のフォームにあり、データが同じページの 2 番目のフォームに Ajax 経由で送信されることにも注意しました。最初のフォームは name="step_one_contact_information_form" で、2 番目のフォーム (請求先名、請求先姓) は name="step_two_billing_address" です。

何か案は?

アドバイスありがとうございます!

4

2 に答える 2

0

次のようなことを試してください:

ボタンに onclick イベントを追加します (できればイベント リスナーを使用しますが、次の方法でも機能します)。

<input type="submit" value="Continue" name="dispatch[checkout.update_steps]" onclick="return fillBilling()">

関数を次のように変更します。

function fillBilling() {
    document.getElementsByName("user_data[b_firstname]")[0].value = document.getElementsByName("user_data[firstname]")[0].value;
    document.getElementsByName("user_data[s_firstname]")[0].value = document.getElementsByName("user_data[lastname]")[0].value;
    return false;
}

ID が常に同じである場合は、代わりに使用できますdocument.getElementByID("elm_[x]")([x] をそれぞれの ID に置き換えます)。

また、フォームを送信するためにボタンを使用しない場合は、ボタンを「ボタン」タイプに変更することをお勧めします。

<input type="button"... />

お役に立てれば

于 2013-03-26T21:59:01.353 に答える
0

jQueryで作ることをお勧めします。私があなたのためにこれを作ったのは非常に簡単です: http://jsfiddle.net/FPsdy/1/

コードの例を次に示します。

$('input[type=submit]').click(function(){
   $('#elm_14').val($('#elm_6').val());
   $('#elm_16').val($('#elm_7').val());
});
于 2013-03-26T21:28:18.457 に答える