2013-06-29 72 views
0

我想通过使用jquery和ajax时,用户defocuses该文本框的HTML文本框表单域的值到另一个.php文件。该文本框的ID为“aircraftReg”。我使用的代码如下...传递var使用jquery&ajax

$(document).ready(function(){ 
    $("#aircraftReg").blur(function() { 
     var aircraftReg = $(this).value; 
     $.get("searchDatabase.php?q=aircraftReg", function(data){     
      // My function     
     }); 
    }); 
}); 

我认为问题在于创建var aircraftReg。我试图将其值分配给ID为“aircraftReg”的文本框中的文本。

任何人都可以看到出了什么问题?

回答

1

尝试改变它像这样:

var aircraftReg = $(this).val(); 
$.get("searchDatabase.php?q="+aircraftReg , function(data){     
      // My function     
     }); 

为了让文本字段(或其他输入)的值有jQuery中.val()方法。

1

您需要更改Url,因为您正在将javascript var传递给网址,因此我必须将其添加为+

var aircraftReg = $(this).val(); 
$.get("searchDatabase.php?q="+aircraftReg , function(data){     
    //function logic goes here    
}); 
+1

好像你的答案和我的完全一样吗? ;) – Cherniv

+0

但一些解释必须在那里。 –

+0

好的,好的解释比正确的代码更重要! – Cherniv

1

您已通过aircraftReg作为普通字符串而不是作为一个javascript变量。

$(document).ready(function(){ 
    $("#aircraftReg").blur(function() { 
     var aircraftReg = $(this).value; //or $(this).val(); 
     $.get("searchDatabase.php?q="+ encodeURIComponent(aircraftReg), function(data){     
      // My function     
     }); 
    }); 
}); 

而且,你有三种编码选项:

escape()不会编码:@*/+

encodeURI()不会编码:[email protected]#$&*()=:/,;?+'

encodeURIComponent()不会编码:~!*()'

注:escape()好玩ction是非ASCII,encodeURI()encodeURIComponent()UTF-8兼容。