-2

サーバーからデータを取得し、テーブルに出力しています。2 つのオプション (承認と不承認) を含むドロップダウン メニューを使用しました。関数を呼び出して、選択された行の値のみを更新したい。私のコードは次のとおりです。

 <script type="text/javascript">
/**
 * This code declares your class and saves an object "blogentry" to the table on StackMob.
 * StackMob will create the table for you automatically based on your JSON.
 */
 $(document).ready(function() {
            result();
            function result() {

            var device = StackMob.Model.extend({ schemaName: 'device' });
            var mydevice = new device({ });
                    var q = new StackMob.Collection.Query();
                    q.equals('device_org', 1);
                    q.setRange(0,9).orderDesc('lastmoddate');

                    mydevice.query(q, {
                        success: function(modal) {
                            //After StackMob returns "Bill Watterson", print out the result
                            var array = modal.toJSON();
                             // console.debug(array);
                             //$('#data').html(array[0].user_name);
                             var val = array[0].lastmoddate;
                             $('#last_mod_date').attr('value', val);


                                var key;
                                var count = 0;
                                for(key in array) {
                                     if(array.hasOwnProperty(key)) {
                                      count ++;
                                     }
                                 }
                                                                //  $("#ui").append("<tr><td>"+array[i].device_IMEI+"</td><td>"+array[i].device_model+"</td><td>"+array[i].device_permission+"<select id='abc' ><option value='true'>Approve</option><option value='false'>DisApprove</option></select></td> <td>"+ new Date(array[i].lastmoddate)+"</td><tr>");

                                 //alert(count);
                            for(var i=0; i<=count; i++)
                            {
                            //  if(array[i].org_img == localStorage.getItem("stackmob.oauth2.user"))

                                //alert(array[i].org_img);
                                    //$('#last_mod_date').html(array[0].lastmoddate);
                                    //$('#device_id').attr('value',disapprov);
                                    //alert(val);
                                    $("#ui").append("<tr><td>"+array[i].device_IMEI+"</td><td>"+array[i].device_model+"</td><td>"+array[i].device_permission+"<select id='abc' ><option value='true'>Approve</option><option value='false'>DisApprove</option></select></td> <td>"+ new Date(array[i].lastmoddate)+"</td><tr>");

                $(document).on('change', 'select#abc', function(){
 // do something
 //alert("Updated");
var value=$("#abc").val(); 
alert(value);

 //exit;
});

                                 //end if condition
                            } // end for loop




                        } //end success


                     }); // end imagesearch schema query

                     } // end result function


            setInterval(check_newentry,1000);

                     function check_newentry() {
                        var device = StackMob.Model.extend({ schemaName: 'device' });
            var mydevice = new device({  });
                    var q = new StackMob.Collection.Query();
                    q.orderDesc('lastmoddate');
                    mydevice.query(q, {
                        success: function(modal) {
                            //After StackMob returns "Bill Watterson", print out the result
                            var array = modal.toJSON();
                             // console.debug(array);
                             //$('#data').html(array[0].user_name);


                            // alert(lastmod_date_old +"..."+ lastmod_date);
                             if(lastmod_date_old < lastmod_date)

                            {

                                var val = array[0].lastmoddate;
                                 $('#last_mod_date').attr('value', val);

                                var key;
                                var count = 0;
                                var counter=0;
                                for(key in array) {
                                     if(array.hasOwnProperty(key)) {
                                      count ++;
                                     }
                                 }
                                 //alert(count);
                         for(var i=0; i<=count; i++)
                            {

                                if(counter<50)
                                {

                                    //$("#ui").append("<tr><td>"+array[i].device_IMEI+"</td><td>"+array[i].device_model+"</td><td>"+array[i].device_permission+"</td><td>"+new Date(array[i].lastmoddate)+"</td><tr>");

                                    //------------------------------------------- end device schema code
                                                                        $("#ui").append("<tr><td>"+array[i].device_IMEI+"</td><td>"+array[i].device_model+"</td><td>"+array[i].device_permission+"<select id='myList'><option value='true'>Approve</option><option value='false'>DisApprove</option></select></td> <td>"+ new Date(array[i].lastmoddate)+"</td><tr>");


                                    counter++;

                                }
                                else
                                exit();
                            }
                        }
                        }
                     });
                     } // end check_newentry 
                     });

        </script>

スナップは次のとおりです。

ここに画像の説明を入力

このコードの問題と、すべての行でどのように機能するか。その行に対応するIMEI番号を選びたいです。どうやってやるの?私を助けてください。

4

1 に答える 1

1

ループの外側で、イベントを ID abc の select にアタッチしてみてください

$(document).on('change', 'select#abc', function(){
 // do something
});

ID abc で要素を取得しようとすると、最初の要素が取得されるだけだと思います。そのコードを変更して、使用する代わりにjqueryを使用することができます

document.getElementById('abc')

使用する

$('select#abc').change(function(){
 //do something
});

したがって、ID abc のすべての選択を取得します

于 2013-05-11T19:52:25.580 に答える