如何在Jquery中捕获输入到变量中

Jon*_*rft 1 javascript ajax jquery

基本上我正在尝试在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);
                             }
                 ); 
   });

});
Run Code Online (Sandbox Code Playgroud)

但是这种方式不起作用......我必须用"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);
                                         }); });
                 }); 
                  }); 
   });
Run Code Online (Sandbox Code Playgroud)

所以我的问题基本上是"如何让jquery捕获文本字段中的输入并将其分配给变量?就像在第一个例子中那样?" 或者它不必在很长的路上完成?

Eng*_*eer 5

您需要使用.val()而不是.value:

{ s: s.val(), u: u.val() , p: p.val() }
Run Code Online (Sandbox Code Playgroud)

as s,up是jQuery对象,而不是DOM Elements.