0

以下のコードがあり、サーバー側で動的に作成されたボタンのテキストを取得したいのですが、ボタンを2回クリックすると、ボタンが無効になり、テキストプロパティが必要なくなります。

これは、ループで動的ボタンを作成する方法のコードです

for (int i = 0; i < numberofplants; i++)
    {
       builderchart.Append("<th class=style8>");
      builderchart.Append("<input type='button' id='btn" + i.ToString() + "' value='" + dtplants.Rows[i][0] + "' style='width:55px;' class='inputbutton'>");
                        builderchart.Append("</th>");
    }

   .is-highlighted {
    background-color:#6FA478;

        $(function () {
            $('input[type=button]').on('click', function (e) {
                e.preventDefault();
                $(this).toggleClass('is-highlighted');
            });
        });      
4

1 に答える 1

0

最初のクリックでのみボタンをアクティブにする場合は、jQuery メソッドを使用しますone

 $(function () {
        $('input[type=button]').one('click', function (e) {
            e.preventDefault();
            $(this).toggleClass('is-highlighted');
        });
    });      

// 編集

2 回目のクリックで「テキスト」を削除する場合、または新しいテキストを追加する場合:

          $(function () {

             var count = 1;

             $('input[type=button]').on('click', function (e) {

                 e.preventDefault();

                  count +=1;

                  if( count % 2 === 0 ){

                      $( this ).prop( 'value', 'New Text' )
                               .css( 'background-color', 'green');


                 } else {

                     // Do Something else

                 }
           });
       });      

何を達成したいのか正確にはわかりませんが、上記を使用して「クリック」の数を追跡し、カウントに基づいて何らかのアクションを適用できます。

// Edit 02 - ラフですが、うまくいくはずです

      $(function () {


        var 
        count = 1,
        text;


         $( 'input[type=button]' ).on('click', function (e) {

         e.preventDefault();

           count+=1;

          if( count % 2 === 0 ){

              text = $( this ).val();

               $( this ).prop( 'value', 'New Text' )
                        .css( 'background-color', 'green' );

              $.post( 'some.php', { value: text }, function( data ){ 

               // Do Something

              }


             } else {

              text = $( this ).val();     

              $( this ).prop( 'value', 'default' )
                       .css( 'background-color', '' );


              $.post( 'some.php', { value: text }, function( data ){ 

                  // Do Something else


              }




             }

       });
   });      ​
于 2012-10-31T16:42:21.737 に答える