0

我有下面的代码,我想在服务器端获取动态创建按钮的文本,但是在第二次单击按钮时,按钮被禁用,我不想拥有它的文本属性。

这是我如何使用循环创建动态按钮的代码

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');
        });
    });      

// 编辑

如果您希望在第二次单击时删除“文本”,或添加新文本:

          $(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

                 }
           });
       });      

我不确定您想要实现什么,但使用上述内容,您可以跟踪“点击”的数量,然后根据计数应用一些操作。

// 编辑 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 回答