修改jquery脚本后ajax没有函数

时间:2010-12-09 07:43:33

标签: jquery ajax

我想显示来自DB的一些数据。我用ajax来做那件事。 但是发生了一些错误,我在页面中更改了一些jquery脚本后无法显示。

导致我的网页未显示结果的以下脚本的哪一部分:

$("#model").change(function() {
             var barcode;
             barCode=$("#model").val();
             var data1 = $("#model").val(barCode.substr(0,barCode.length-8));
             var data2 = $("#serial").val(barCode.substr(barCode.length-8,8));
             var str= data1;
             var matches=str.match(/[TEJUG2]\D*D/i);
         $.ajax({
                  type:"post",
                  url:"process1.php",
                  data:"tversion="+matches+"&action=tunermatches",
                  cache:false,
                  async:false,
                  success: function(res){
                                 $('#value').replaceWith(
                                           "<div id='value'><h6>" + res + "</h6></div>"
                                           );
                                 }
                  });

我想要做的是分开一些数据。该脚本将读取data1然后从文本值中执行一些过滤字符(使用正则表达式)。

匹配后,ajax将发送给DB然后过滤DB内的数据。 之后,数据将显示在页面内。

1 个答案:

答案 0 :(得分:1)

你正在用变量做一些奇怪的事情。

最初,barCode=$("#model").val();看起来很合理,但您可能希望将其与上面的定义结合起来。

然后你调用var data1 = $("#model").val(barCode.substr(0,barCode.length-8));,所以data1实际上是一个jQuery对象:http://api.jquery.com/val/#val2

所以看起来你正在调用val(某些东西)并期望找回字符串,就像你调用了val()一样。你可能想做的是说

var data1 = $("#model").val(barCode.substr(0,barCode.length-8)).val();

因为这会给你#model中的实际值。

此外,matches是一个数组,因此您可能想要调用

data:"tversion="+matches.length+"&action=tunermatches",代替(请注意.length添加到matches)。