我想显示来自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内的数据。 之后,数据将显示在页面内。
答案 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
)。