1
  1. 最初の訪問時に非表示にする必要がある2つの入力フィールドがあります。
  2. 編集できるようにフィールドを表示するために切り替えるボタンがあります。
  3. idを追加する単語(つまり_temp)は、必要がない場合に再度保存されないようにID名を変更するだけです。フィールドに追加ワード(_temp)が表示されている場合は、削除する必要があります。(つまり、(元のID名:payment_gateway_login)(追加ID:payment_gateway_login_temp)、フィールドに削除追加ID名が表示されている場合は、元のID名に戻す必要があります。
  4. 以下は私が得ることができる限りです。どんな助けでも大歓迎です。

HTML:

<ul>
  <li class="show-hide-container hide" style="display: list-item; ">
    <ol>
      <li class="password input required stringish" id="payment_gateway_login_input">
        <input id="payment_gateway_login" name="payment_gateway[login]" type="password">
     </li>
     <li class="password input required stringish" id="payment_gateway_password_input">
       <input id="payment_gateway_password" name="payment_gateway[password]" type="password">
     </li>
   </ol>
 </li>

 <li class="clearfix edit-login-pass"> <a href="#" class="btn" id="show_hide">Edit Login &amp; Password</a>
 </li>
</ul>

</ p>

JQUERY:

$("input#payment_gateway_login").attr("id", "payment_gateway_login" + "_temp");
$("input#payment_gateway_password").attr("id", "payment_gateway_password" + "_temp");

$("#show_hide").live("click", function(event) {
  return $("li.show-hide-container").toggle("show");
});

</ p>

4

1 に答える 1

1

このようなものをお探しですか?

$('#show_hide').on('click', function(event) {
   if ($('#show-hide-container').is(':visible')) {
      // container is currently visible so hide it and set id to temp
      $('#show-hide-container').hide();
      $('#payment_gateway_login').attr('id', 'payment_gateway_login_temp');
      $('#payment_gateway_password').attr('id', 'payment_gateway_password_temp');
   } else {
      // container is currently hidden so show it and remove temp id
      $('#show-hide-container').show();
      $('#payment_gateway_login_temp').attr('id', 'payment_gateway_login');
      $('#payment_gateway_password_temp').attr('id', 'payment_gateway_password');
   }
});

いくつかの注意事項: .live() は推奨されていないため、代わりに .on() を使用することをお勧めします。これも、html の元の ID を変更して _temp を含めない限り機能しません。

そもそもこのアプローチはお勧めしませんが、html ID を変更すると簡単に問題が発生する可能性があります。より簡単な解決策は、情報を保存しようとしているときに表示チェックを実行することです。

if ($('#show-hide-container').is(':visible')) {
    // Save!
}

それが役立つことを願っています!

于 2012-08-14T20:20:13.197 に答える