0

login.phtml を使用してログイン/登録フォームを変更していますが、標準の CSS ボタンの代わりに画像ボタンを使用すると、[アカウントの作成] ボタンに問題が発生します。

この元のコードを変更しました

               <button type="button" title="<?php echo $this->__('Create an Account') ?>" class="button" onclick="window.location='<?php echo Mage::helper('persistent')->getCreateAccountUrl($this->getCreateAccountUrl()) ?>';"><span><span><?php echo $this->__('Create an Account') ?></span></span></button>

  <input type="image" src="http://localhost/magento/skin/frontend/default/mytemplate/images/button-createaccount.png" title="<?php echo $this->__('Create an Account') ?>"  onclick="window.location='<?php echo Mage::helper('persistent')->getCreateAccountUrl($this->getCreateAccountUrl()) ?>';">

ボタンを右側のフローティング「アカウントの作成」divの「コンテンツ」divに移動しました。ボタンは正しく表示されますが、アカウントの作成をクリックするたびに、ブラウザーはアカウントの作成ページに進む前に、左側のフローティング「ログイン」div にあるログイン フォームの必須フィールドを強調表示します。

ページの下部 (ログインの一部でもアカウントの作成 div でもない別の div 内) にある元の css アカウントの作成ボタンをクリックすると、ブラウザーは最初にフォーム フィールドを強調表示せずに正しく続行します。これは、div内のボタンの位置またはwindow.locationメソッドと何らかの関係がありますか???

完全なコードは次のとおりです。

<div class="account-login"> <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
  <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
    <div class="col2-set">
    <div class="col-2 new-users">
      <div class="content"> <?php echo $this->__('New Customers') ?>
        <p><?php echo $this->__('By creating an account with our store, you will be able to move through the checkout process faster, store multiple shipping addresses, view and track your orders in your account and more.') ?></p>
        <!-- Insert image button for Create Account in new div class "button" -->
        <div class="button">
          <input type="image" src="http://localhost/magento/skin/frontend/default/mytemplate/images/button-createaccount.png" title="<?php echo $this->__('Create an Account') ?>"  onclick="window.location='<?php echo Mage::helper('persistent')->getCreateAccountUrl($this->getCreateAccountUrl()) ?>';">
        </div>
        <!-- End Insert image button for Create Account in new div class "button"  --> 
      </div>
    </div>
    <div class="col-1 registered-users">
      <div class="content">
        <h2><?php echo $this->__('Registered Customers') ?></h2>
        <p><?php echo $this->__('If you have an account with us, please log in.') ?></p>
        <ul class="form-list">
          <li>
            <label for="email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
            <div class="input-box">
              <input type="text" name="login[username]" value="<?php echo $this->htmlEscape($this->getUsername()) ?>" id="email" class="input-text required-entry validate-email" title="<?php echo $this->__('Email Address') ?>" />
            </div>
          </li>
          <li>
            <label for="pass" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
            <div class="input-box">
              <input type="password" name="login[password]" class="input-text required-entry validate-password" id="pass" title="<?php echo $this->__('Password') ?>" />
            </div>
          </li>
          <?php echo $this->getChildHtml('persistent.remember.me'); ?>
        </ul>
        <?php echo $this->getChildHtml('persistent.remember.me.tooltip'); ?> 
        <!-- Insert image button for Login in div class "button" -->
        <div class="button">
          <input type="image" src="http://localhost/magento/skin/frontend/default/mytemplate/images/button-login.png" title="<?php echo $this->__('Login') ?>" name="send" id="send2">
        </div>
        <!-- End Insert image button for Login in div class "button" -->
        <div class="buttons-set"> <a href="<?php echo $this->getForgotPasswordUrl() ?>" class="f-left"><?php echo $this->__('Forgot Your Password?') ?></a> </div>
      </div>
    </div>
    <div class="col2-set">
      <div class="col-2 new-users">
        <div class="buttons-set">
          <button type="button" title="<?php echo $this->__('Create an Account') ?>" class="button" onclick="window.location='<?php echo Mage::helper('persistent')->getCreateAccountUrl($this->getCreateAccountUrl()) ?>';"><span><span><?php echo $this->__('Create an Account') ?></span></span></button>
        </div>
      </div>
      <div class="col-1 registered-users">
        <div class="buttons-set"> <a href="<?php echo $this->getForgotPasswordUrl() ?>" class="f-left"><?php echo $this->__('Forgot Your Password?') ?></a>
          <button type="submit" class="button" title="<?php echo $this->__('Login') ?>" name="send" id="send2"><span><span><?php echo $this->__('Login') ?></span></span></button>
        </div>
      </div>
    </div>
    <?php if (Mage::helper('checkout')->isContextCheckout()): ?>
    <input name="context" type="hidden" value="checkout" />
    <?php endif; ?>
  </form>
  <script type="text/javascript">
               var dataForm = new VarienForm('login-form', true);
    </script> 
</div>
4

1 に答える 1

1

フォームが Varien_Form として JavaScript で開始されるため、彼の問題が発生しています。

<script type="text/javascript">
    var dataForm = new VarienForm('login-form', true);
</script>

これには多くのデフォルトの動作があり、予期しないボタンや要素に遭遇したときに明らかに奇妙な動作をします。これらは、Magento の js ライブラリのどこかに定義されています。

これがあなたを正しい方向に向けるのに役立つことを願っています。

于 2012-05-10T03:12:04.587 に答える