1

基本的に、Jquery で AJAX スクリプトを作成しようとしています。しかし、主な問題は、このような変数を定義したいということです

$(document).ready(function () {
    var u = $('#username');
    var s = $('#server');
    var p = $('#password');

    $('#server').keyup(function () {
         $.post("connect.php", { s: s.value, u: u.value , p: p.value },
             function(data) {
             $('#hol').html('checking connection...' + u.value + " " + p.value + " " + s.value + " " + data);
                             }
                 ); 
   });

});

しかし、それはどういうわけか機能しません....変数を事前に割り当てることができるのではなく、「this」で変数を定義する必要があるのはかなり奇妙に思えます。

動作するコードは

$(document).ready(function () {

    $('#username').keyup(function () {
        var u = this;
            $('#password').keyup(function () {
            var p = this;
                   $('#server').keyup(function () {
                    var s = this;

                     $.post("connect.php", { s: s.value, u: u.value , p: p.value },
                     function(data) {
                        $('#hol').html('checking connection...' + u.value + " " + p.value + " " + s.value + " " + data);
                                         }); });
                 }); 
                  }); 
   });

だから私の質問は基本的に「jqueryにテキストフィールドの入力をキャッチさせて変数に割り当てるにはどうすればよいですか?最初の例のように??」それとも長い道のりで行う必要はありませんか?

4

6 に答える 6

5

.val()代わりに使用する必要があります.value

{ s: s.val(), u: u.val() , p: p.val() }

as su、およびpは jQuery オブジェクトであり、DOM 要素ではありません。

于 2012-07-26T11:02:41.687 に答える
1

使用する.val();

var u = $('#username').val();
var s = $('#server').val();
var p = $('#password').val();
于 2012-07-26T11:03:04.203 に答える
0

の方法として、次のserialize()方法を使用できます。

一連のフォーム要素を送信用の文字列としてエンコードする

$('#server').keyup(function () {
         $.post("connect.php", $('input[type=text]').serialize(),
             function(data) {
             $('#hol').html('checking connection ' + data);
         }); 
   });
于 2012-07-26T11:03:04.533 に答える
0

この方法で使用できます

$(document).ready(function () {
    var u = $('#username');
    var s = $('#server');
    var p = $('#password');

    s.keyup(function () {
         $.post("connect.php", { s: s.val(), u: u.val() , p: p.val() },
             function(data) {
             $('#hol').html('checking connection...' + u.val() + " " + p.val() + " " + s.val() + " " + data);
                             }
                 ); 
   });

});
于 2012-07-26T11:04:01.723 に答える
0

jQueryセレクターを使用しています..

var u = $('#username');
var s = $('#server');
var p = $('#password');

ファッションで価値にアクセスするjavascript....

u.value; //WRONG

あなたが使用しているjQuery場合、正しい方法は

u.val();

また

u.attr('value');

v と w についても同様です:)

于 2012-07-26T11:05:07.467 に答える
0

これはすべてをカバーするはずです:

$(document).ready(function() {

  var u = $('#username'),
      s = $('#server'),
      p = $('#password');

  function doYourAjaxCall() {
    $.post("connect.php", { 
      s: s.val(), 
      u: u.val(), 
      p: p.val() 
    },
    function(data) {
      $('#hol').html('checking connection...' + u.val() + " " + p.val() + " " + s.val() + " " + data);
    });
  }

  u.keyup(doYourAjaxCall);
  s.keyup(doYourAjaxCall);
  p.keyup(doYourAjaxCall);

});

いつものように、良い C# の習慣が悪い JavaScript の習慣を助長する方法を読むことをお勧めします。

于 2012-07-26T11:09:23.060 に答える