0

このリンクはとても便利だと思いました

選択したテキストボックスのIDをjQueryで取得

ただし、私が今やりたかったのは、このIDを再利用して、実際にループしているテキストボックスごとにトリミング機能を実行することです。私はこのコードを試しました:

<html>
    <head>
        <?php   echo $this->Html->script("jquery-1.4.3.min"); ?>

    </head>
    <body>
    <?php
        echo $content_for_layout;
    ?>
    <script type="text/javascript">
        $(document).ready(function () {
         //       alert('JQuery is succesfully included');

/*      $(':submit').click(function(){
            <?php if(($this->request->controller=='members')&&($this->action=='register')):?>
                    //alert('well');
                    var some = $.trim($(":text").val());
                    alert(some);
            <?php  endif; ?>

            });
*/
            $(':submit').click(function(){
                $('form input[type="text"]').each(function(){
                    //get value of id of textbox here
                    var id = $(this).attr('id');
                    var some = $.trim($((this).attr('id')).val());
                    alert(some);
                });

            });
        });
    </script>
    </body>
</html>

それでもアラートボックスは表示されません。

4

1 に答える 1

0

私はあなたが達成しようとしていることについて少し混乱していますが、この行には問題があります:

var some = $.trim($((this).attr('id')).val());

具体的には、メソッドを持たない現在の DOM 要素であると解釈される(this).attr('id')ため、機能しません。(this)thisthis.attr()

おそらくこれをやりたかったと思います:

var some = $.trim($("#" + $(this).attr('id')).val());
// or, given you already have a variable id equal to $(this).attr('id')
var some = $.trim($('#' + id).val());

つまり、現在の要素から ID を取得し、その ID を使用して要素を選択し、その値を取得してから、値をトリミングしようとしています。ただし、要素への参照が既にある場合は、値を取得するために id は必要ありません。これを行うだけで済みます。

var some = $.trim($(this).val());
// or
var some = $.trim(this.value);

すべてのテキストボックスをループして、現在の値のトリミングされたバージョンに設定する場合は、次のようにします。

$('form input[type="text"]').each(function(){
    this.value = $.trim(this.value);
    // or if you want the slower and harder to read way:
    $(this).val( $.trim($(this).val()) );
});

または:

$('form input[type="text"]').val(function(i,currentVal) {
    return $.trim(currentVal);
});

にコールバック関数を渡す方法については、.val()ドキュメントを参照してください.val()

于 2012-05-10T00:48:15.427 に答える