今天遇到一个问题,我需要传一个文本库的内容给后台,然后用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. Transform数据权限浅析1之mdl语句批量加载权限

    Cognos建模工具除了Framework之外,还有一个Transform,两者的最大区别就是在于Framework是通过结构直连关系数据库的,数据根据数据仓库的变化而变化,而Transform是生产 ...

  2. Cocos2d-x 2.x 升级为 3.x 常见变化纪录

    1.去CC 之前2.0的CC**,把CC都去掉,主要的元素都是保留的 2.0 CCSprite  CCCallFunc CCNode .. 3.0 Sprite CallFunc Node .. 2. ...

  3. Java取出String字符串括号中的内容

    形如: String idStr="dfda(2018)41324"; private int getId(String gSQL){ String quStr=gSQL.subs ...

  4. CSS基础和布局复习

    table布局 div布局优势   浏览器支持完善   表现和结构分离   样式设计控制功能强大   可以继承,层叠处理 Transitional // 松散过度型 Strict //严格型 Fram ...

  5. iOS buttonWithType:101 苹果私有api

    无意中发现,有人创建UIButton这样写 UIButton *previousButton = [UIButtonbuttonWithType:101]; 一看原来是私有api UIButton * ...

  6. es5 - array - shift

    /** * 描述:该shift()方法从数组中删除第一个元素并返回已删除的元素.此方法更改数组的长度. * 语法:arr.shift() * 返回:该shift方法删除零点索引处的元素并将连续索引处的 ...

  7. TP框架中field查询字段

    TP框架中field查询字段 不是fields 也不是files !!!! 不是fields 也不是files !!!! 不是fields 也不是files !!!! 不是fields 也不是file ...

  8. STRUTS2配置动态页面

      STRUTS2配置动态页面 CreateTime--2017年5月11日09:00:31Author:Marydon 1.struts配置 <?xml version="1.0&q ...

  9. OFBiz:解析doRequest()

    这里的doRequest()是指RequestHandler中的同名函数: public void doRequest(HttpServletRequest request, HttpServletR ...

  10. 【剑指offer】面试题30:最小的K个数

    import random def partition(data, start, end): if end <= start: return start index = random.randi ...