1

私はこのスクリプトを使用してselect、フォームの変更時にデータベースを更新しています:

$(document).ready(function() {
        $('select.changeStatus').change(function(){
                $.ajax({
                        type: 'POST',
                        url: 'Change-status.php',
                        data: {selectFieldValue: $('select.changeStatus').val(), projectId: $('input[name$="projectId"]').val()},
                        success: function(data){},
                        dataType: 'html'
                 });
        });
});

特定の条件に従ってフォームを含むsuccessCSSクラスを変更するために、設定にswitchステートメントを挿入したいと思います。<div/>アイデアはこれを行うことです:

selectFieldValueが0の場合、<div/>背景を赤にし、1の場合は背景をオレンジにし、2の場合は背景を緑にします。

私は実際にこれを使用することを計画しています:$("#mydiv").css({'background-color': "red"})、成功設定内のスイッチにネストするのに問題があります。

どうすればいいですか?または、これを行うためのより良い方法はありますか?

どうもありがとう。

4

1 に答える 1

2

switchステートメントは少し冗長になります。値が 0、1、または 2 の場合、それらをインデックスとして使用して、値の配列内から値を検索できます。

success: function(data){
  var colors = [ "red", "orange", "green" ],
      _value = $('select.changeStatus').val();
  $("#mydiv").css("background", colors[ _value ]);
}

アップデート:

OP の質問: すばらしい、どうもありがとう。範囲 (赤の場合は 0 ~ 1、オレンジの場合は 2 ~ 3、緑の場合は 4 ~ 5) の場合、次の方法よりも適切な方法はありますか?

var colors = [ "red", "red", "orange", "orange", "green", "green" ]

0 と 1 で 1 つの色になり、2 と 3 で別の色になり、4 から 5 でさらに別の色になるような数値のコレクションを形成したい場合、私はこれに少し異なるアプローチをします。数字が奇数の場合、コレクションの最上位にあることがわかっています。結局のところ、2-3 と 4-5 はどちらもハイエンドに奇数があります。これは、数が奇数の場合、以前の連続したパートナーと同じように動作する必要があることを意味します。したがって、数が 5 または 4 の場合は、4 を使用します。3 つまたは 2 つの場合は、2 つを使用します。

success: function(data){
  var colors = [ "red", "orange", "green" ],
      _value = $('select.changeStatus').val();

  if ( _value % 2 != 0 ) _value--; // Converts 1 to 0, 3 to 2, 5 to 4, etc.

  $("#mydiv").css("background", colors[ _value ]);
}
于 2012-05-02T15:35:49.253 に答える