0

追加フォームで jQuery で機能する関数がありますが、編集フォームで div を表示するように関数を修正する必要があります。

例 追加フォーム:

jQuery:

$(document).ready( function() {
  $('#status').bind('change', function (e) { 
    if( $('#status').val() == 'Rejected') {
      $('#reason').show();
      $("#reason").css({ display: "inline-block" });
      $('#decision').hide();
    }
    else if( $('#status').val() == 'Accepted') {
      $('#reason').hide();
      $('#decision').show();
    }         
  });
});

形:

<div class="status" style="display:inline-block;"> Status: 
<select name="status" id="status">
<option value="Accepted" selected="selected">Accepted</option>
<option value="Rejected">Rejected</option>
</select>
</div>
<div id="reason" style="display:none;">&nbsp; Reason: <input type="text" name="reason" value="" placeholder="The reason..."></div>
<div id="decision" style="display:inline-block;">&nbsp; Decision:
<select name="decision">
<option value="Waiting" selected="selected">Waiting</option>
<option value="Send">Send</option>
</select>
</div>

JSFiddle の例

良いですが、編集フォームを開いて「拒否」を選択すると、理由はまだ非表示で、決定は表示されています。

私の質問は、拒否された場合に「非表示」の決定と「表示」の理由を取得するにはどうすればよいですか?

どんな助けでも大歓迎です。

4

1 に答える 1

4

trigger('change')次のようにして、イベントをトリガーしてすぐに発生させることができます。

$(document).ready( function() {
  $('#status').bind('change', function (e) { 
    if( $('#status').val() == 'Rejected') {
      $('#reason').show();
      $("#reason").css({ display: "inline-block" });
      $('#decision').hide();
    }
    else if( $('#status').val() == 'Accepted') {
      $('#reason').hide();
      $('#decision').show();
    }         
  }).trigger('change');
});

http://jsfiddle.net/VLQKw/1/

于 2013-08-24T22:48:43.120 に答える