今天遇到一个问题,我需要传一个文本库的内容给后台,然后用autocomplete显示内容,开始觉得很简单

不就是

function SalePrice_Complete(text) {
//分割拿到索引
var value=$("#MaterielID_" + text.selector.split('_')[]).val();
text.autocomplete("/Control/webControl.ashx",
{
dataType: 'json', //返回数据类型
width: ,
minChars: ,
extraParams: { Method: "SalePriceAutoComplate",MaterielID:value},
parse: function (data) { //后台返回的数据传给自定义的rows
var rows = [];
for (var i = ; i < data.length; i++) {
rows[rows.length] = {
data: "[" + data[i].FPirce + " " + data[i].FDate + "]", //显示在搜索界面的列表
value: data[i].FPirce , //查询结果
result: data[i].FPirce //显示在文本框的内容
};
}
return rows;
},
formatItem: function (row, i, n) {
return row;
}
}).result(function (event, item, returnvalue) {
var values = returnvalue;
var index = text[].id;
var i = index.split('_')[];
//物料编号
$("#price_" + i).val(values[]);
});
};

但是代码运行后发现,MaterielID得到是空的,想了很久不知道为什么,于是在后台和js都下了断点,再运行,发现js没有再运行过了,但是后台却断点断到了

所以我们可以推断,变量是要动态赋值的

于是参考了下网上的代码,修改成

 function SalePrice_Complete(text) {

            text.autocomplete("/Control/webControl.ashx",
{
dataType: 'json', //返回数据类型
width: ,
minChars: ,
extraParams: { Method: "SalePriceAutoComplate",MaterielID:function(){ return $("#MaterielID_" + text.selector.split('_')[]).val()}},
parse: function (data) { //后台返回的数据传给自定义的rows
var rows = [];
for (var i = ; i < data.length; i++) {
rows[rows.length] = {
data: "[" + data[i].FPirce + " " + data[i].FDate + "]", //显示在搜索界面的列表
value: data[i].FPirce , //查询结果
result: data[i].FPirce //显示在文本框的内容
};
}
return rows;
},
formatItem: function (row, i, n) {
return row;
}
}).result(function (event, item, returnvalue) {
var values = returnvalue;
var index = text[].id;
var i = index.split('_')[];
//物料编号
$("#price_" + i).val(values[]);
});
};

这样后台拿到MaterielID就有值了,事实证明,在对代码机制不熟悉的情况下,用正常思维去推只能让你陷入烦恼和气愤中,想着明明有赋值,怎么到后台就不见了,所以还是多用断点多调试,用事实说话

jquery.autocomplete 传参问题的更多相关文章

  1. 【HTML】Jquery前台传参及接收

    在一些网页应用中,有的时候需要前台之间传递参数,通过JS语法来做一些判断处理. 发送端:(a页面) <a href="b.html?Show=true" id="t ...

  2. Ajax传参讲解

    客户端和服务器 1.请求:request 2.响应:response 服务器响应事件:onreadystatechange() send() 用于向后台传递参数: Ajax的请求方式 get:    ...

  3. JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参

    <script src="jquery.min.js" type="text/javascript"></script> <scr ...

  4. jQuery多图上传Uploadify插件使用及传参详解

    因为工作需要,这两天接触到了Uploadify插件,由于是第一次用,花了我近一天的时间.下面我把我在用这个插件过程详细的分享出来,也让自己巩固一下,也希望能帮助到你. 所需文件: jquery-1.8 ...

  5. jQuery对象初始化的传参方式

    jQuery对象初始化的传参方式包括: 1.$(DOMElement) 2.$(' ... '), $('#id'), $('.class') 传入字符串, 这是最常见的形式, 这种传参数经常也传入第 ...

  6. jquery插件函数传参错误

    1.jquery传参通过json,可能的错误是,参数中的结束符写成了;

  7. angularjs简单实现$http.post(CORS)跨域及$http.post传参方式模拟jQuery.post

    1.开启angularjs的CORS支持 .config(function($httpProvider) { // CORS post跨域配置 $httpProvider.defaults.useXD ...

  8. 跨域问题及jQuery中Ajax传参的讲解

    1.跨域:不再同一服务器下,就是协议,域名,端口,有一个不一样: 浏览器对于javascript的同源策略的限制: 案例: 以 http://172.164.23:8088/ 为例 相同域名:172. ...

  9. Jquery autocomplete插件的使用

    简单用法: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...

随机推荐

  1. gsoap

    C++中如何使用gsoap开发WebService 1. 什么是gSOAPgSOAP是一个夸平台的,用于开发Web Service服务端和客户端的工具,在Windows.Linux.MAC OS和UN ...

  2. LDA基本介绍以及LDA源码分析(BLEI)

    基本介绍: topic model,主题模型介绍:http://www.cnblogs.com/lixiaolun/p/4455764.html  以及 (http://blog.csdn.net/h ...

  3. poj 3237(树链剖分+线段树)

    题意:给一棵树,三种操作.将第i条边的权值改为v,将a到b的路径上的边的权值全部取反,求a到b路径上边的权值的最大值. 思路:明显的树链剖分,加上线段树的操作.因为有取反的操作所以每个区间要记录最大值 ...

  4. JAVA生成解析二维码

    package com.mohe.twocode; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.B ...

  5. Python 对字符串切片

    对字符串切片字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符.因此,字符串也可以用切片操作,只是操作结果仍是字符串:>>> 'A ...

  6. Object.create(null) 和 {} 区别

    Object.create(null) 创建一个空对象,此对象无原型方法. {} 其实是new Object(),具有原型方法. 应用: 使用Object.create(null)的一个重要应用是:创 ...

  7. servlet request getQueryString 汉字的URI编码如何转码

    JavaScript中编码有三种方法:escape.encodeURI.encodeURIComponent,地址栏中那些%XX就是汉字对应的字节被encodeURI编码格式转了.一个字节对应一个% ...

  8. 51CTO 资料汇总 截止20150504

    ================帖子列表,请大家选择自己喜欢的汇总贴分享================ 考试认证: 1.备战2014软考!精品视频教程推荐(综合复习+经验分享+考前冲刺)[随时更新] ...

  9. MySQL实现允许远程用户登录(使用Navicat for MySQL工具)

    一.方式一和方式二都可以,建议方式二. 前提条件:在服务器上将MySQL的配置文件 /etc/mysql/my.cnf中使用: sudo vi /etc/mysql/my.cnf 找到bind-add ...

  10. 连接到 Linux 服务器时首先要运行的 5 个命令

    作为一个系统管理员/SRE 工作 5 年后,我知道当我连接到一台 Linux 服务器时我首先应该做什么.这里有一系列关于服务器你必须了解的信息,以便你可以(在大部分时间里)更好的调试该服务器. 连上 ...